本文目錄一覽:
- 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。
(近期沒少受此困擾,碼了這麼多,跟吐槽似的了……)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/275609.html