JavaScript中瀏覽器兼容問題詳解
在實際開發(fā)中,瀏覽器兼容性問題是一部分容易被忽視但又最為重要的問題。在處理老版本瀏覽器兼容問題之前,我們需要了解什么是能力檢測。能力檢測用于檢測瀏覽器是否具備某種能力,即判斷當前瀏覽器是否支持要調(diào)用的
在實際開發(fā)中,瀏覽器兼容性問題是一部分容易被忽視但又最為重要的問題。在處理老版本瀏覽器兼容問題之前,我們需要了解什么是能力檢測。能力檢測用于檢測瀏覽器是否具備某種能力,即判斷當前瀏覽器是否支持要調(diào)用的屬性或方法。
innerText和innerContent
1)innerText和innerContent的作用相同。
2)innerText在IE8之前的瀏覽器中支持。
3)innerContent在老版本的Firefox中支持。
4)新版本的瀏覽器兩種方式都支持。
獲取兄弟節(jié)點/元素的兼容性問題
1)兄弟節(jié)點,在所有瀏覽器中都支持。
- nextSibling:獲取下一個兄弟節(jié)點,可能是非元素節(jié)點,會獲取到文本節(jié)點。
- previousSibling:獲取上一個兄弟節(jié)點,可能是非元素節(jié)點,會獲取到文本節(jié)點。
2)兄弟元素,IE8以前不支持。
- previousElementSibling:獲取上一個緊鄰的兄弟元素,會忽略空白。
- nextElementSibling:獲取下一個緊鄰的兄弟元素,會忽略空白。
()
使用指定的函數(shù)測試所有元素,并創(chuàng)建一個包含所有通過測試的元素的新數(shù)組。
()
遍歷數(shù)組的每個元素并執(zhí)行指定的函數(shù)。
注冊事件
在JavaScript中注冊事件有以下注意事項:
1)事件參數(shù)e是事件對象,可以通過e來獲取相關信息。
- 在標準的獲取方式中,事件對象可以通過參數(shù)傳遞,例如:btn.onclick function(e) {}。
- 在IE8以前的瀏覽器中,事件對象是通過來獲取。
2)e.eventPhase表示事件的階段,在IE8以前的瀏覽器中不支持。
3)始終是觸發(fā)事件的對象(即點擊的按鈕)。
- 在IE8以前的瀏覽器中,可以使用srcElement來獲取。
- 為了兼容不同瀏覽器,可以使用以下代碼:var target || 。
獲取鼠標在頁面上的位置
1)在可視區(qū)域中的位置:
- :鼠標相對于瀏覽器窗口可視區(qū)域左上角的水平坐標。
- :鼠標相對于瀏覽器窗口可視區(qū)域左上角的垂直坐標。
2)在文檔中的位置:
- :鼠標相對于整個文檔左上角的水平坐標。
- :鼠標相對于整個文檔左上角的垂直坐標。
獲取頁面滾動的距離
通過以下方式獲取頁面滾動的距離:
- :獲取滾動條頂部距離文檔頂部的距離。
- :獲取滾動條左側距離文檔左側的距離。
取消文本的選擇
在JavaScript中,可以通過以下方式取消文本的選擇:
- ().removeAllRanges()