本文目录一览:
- 1、像js,css.在chrome,FireFox,IE浏览器不兼容问题一般怎么解决
- 2、js不兼容360, chrome浏览器,不兼容,不起作用
- 3、Chrome浏览器V39版本无法通过js关闭弹出页面
像js,css.在chrome,FireFox,IE浏览器不兼容问题一般怎么解决
解决方法 先看你的产品面向的用户群体
如果完全可以不考虑低版本浏览器用户的就不用去纠结小部分代码问题
然后具体事情具体分析
js的兼容可以借助框架和库 比如jquery,或者自己写个方法判断和兼容该浏览器
css的兼容 其实在养成良好代码习惯和思路之后 能遇上的兼容问题其实是非常少的,很针对性的可以写一点hack,但不要多用
js不兼容360, chrome浏览器,不兼容,不起作用
var diffY =document.body.scrollTop+document.documentElement.scrollTop;
因为chrome只认识document.body.scrollTop,360默认应该是谷歌内核。
由于在不同情况下,document.body.scrollTop与document.documentElement.scrollTop都有可能取不到值,但document.body.scrollTop与document.documentElement.scrollTop两者有个特点,就是同时只会有一个值生效。比如document.body.scrollTop能取到值的时候,document.documentElement.scrollTop就会始终为0;反之亦然。所以,如果要得到网页的真正的scrollTop值就用我上面写的那样
Chrome浏览器V39版本无法通过js关闭弹出页面
遇到同样的问题,说明下:
Chrome自version37起已经默认停止了对window.showModalDialog的支持(可以修改注册表获得支持,2015年5月之前,这种修改都有效)。
而对于从浏览器手动打开的非modal的窗口,在我意识到self close问题以来,Chrome都是不支持的——比如你给自己的page做了个logout的功能,点击之后想用你提到的self close方法关闭这个page,在Chrome上是关不掉的(但是你可以指定到另一个显示logout状态page,效果一样,logout也不一定就非要把那页关掉不是)。
既然它现在停止了支持showModalDialog,非modal窗口又不允许self close,那全面取缔从代码里self close也是情理之中迟早的事情吧。
解决方案:
对于解决showModalDialog问题,你可以自己用iframe之类的自己去模拟一个modal窗口,就像微博的转发窗口,点开之后用户将无法操作原页面的其他element。但是模拟的话,主要会遇到JS继续执行的问题,showModalDialog是会阻止原页面JS继续执行的,直到获取到新窗口的的返回结果,自己模拟这个行为的话,可以考虑call back方式,时间篇幅所限,不细说了哈,想取代showModalDialog都遇到这个问题,网上应该能搜到不少封装好的方法。
再说一点你需要自己写一个showModalDialog的原因,在Chrome宣布停止支持showModalDialog之后,FireFox也首次在文档和DebugTool里标明他们也会停止对showModalDialog的支持。暂时还没正式停止,大概是在等用户对Chrome这个操作的反应。
showModalDialog原来毕竟是IE独有的东西,一直没纳入W3C标准。Chrome对它的支持一直很差,比如从一个page打开showModalDialog,你还可以去其他page操作,也可以查看原page,甚至可以在原page上操作,只是这些操作只有在你关闭了showModalDialog之后才会起作用。
但是FireFox对showModalDialog的支持其实一直是很好的,基本跟IE上用起来基本无差,但是IE也在慢慢遵循W3C标准(特别是新出的IE11),FireFox抛弃showModalDialog也是早晚的事情。
最后,自己"画"的modal dialog完全在你的控制之下,可以暴露一个close接口来允许从子窗口里关闭父窗口打开的modal dialog。
(近期没少受此困扰,码了这么多,跟吐槽似的了……)