1.關於獲取行外樣式的相容性
通過js我們不能通過(html元素.style.樣式屬性
)獲取到頁面上元素的行內樣式,我們可以通過一下兩個方法來獲取行內樣式
1.getcomputedstyle(odiv,false)
相容firefox,opera,safari,chrome,不相容ie
2.currentstyle
ie下獲取行內樣式
odiv.currentstyle.width
這裡封裝了乙個相容所有瀏覽器的函式
funtion getstyle
(obj,name)
else
}
2. 事件中相容性問題
window.event只能在ie下執行, firefox必須從源處加入event作引數傳遞。我在拖拽事件的專案中經常遇到這事件的相容性問題
var e = e || event;
var obox = document.
getelementbyid
('drag'
)//1、給需要移動的元素新增onmousedown事件,給拖動做好準備
obox.
onmousedown
=function
(e)//停止拖動 解綁事件
document.
onmouseup
=function()
3. 阻止事件冒泡
在ie下面阻止冒泡的事件是e.cancelbubble
在e.stoppropagation() 是我們現在比較標準的寫法
e.
stoppropagation()
|| e.cancelbubble
注意:stoppropagation()是乙個方法,而cancelbubble 是屬性,預設值是true
4. 阻止瀏覽器預設行為
e.
preventdefault()
|| e.returnvalue =
false
5. dom事件監聽的相容性
ie8以上及其他瀏覽器 :監聽addeventlistener 解除監聽 removeeventlistener
ie8及以下 :監聽attachevent 解除監聽detachevent
//obj 給指定的元素新增事件
//type 事件的型別
//fn 函式
//usecapture 捕獲還是冒泡
function
addevent
(obj,type,fn)
else
}
6. 建立ajax物件
ie低版本瀏覽器: activexobject(「microsoft,xmlhttp」)
chrome等其他瀏覽器 : var xhr = new xmlhttprequest()
)7.dom 的childnodes 獲取子節點的相容性問題
JS相容性處理
正確情況 只有一行 只針對ie起作用,而且考慮了ie使用者自選渲染模式 怪癖模式 支援ie5 6 7 8 9及10。非ie彈出false,ie則彈出5到10版本值 script html 最短判斷是否ie的 if 1,else 經過測試 ie9 ie10彈出 非ie 實際編碼中,更多的將是採用 物件...
js 常見相容性處理
1 獲取滾動條相容var height document.documentelement.scrolltop document.body.scrolltop 2 獲取可是區域相容var clientwidth window.innerwidth document.documentelement.cl...
webpack 之js相容性處理
用來拼接絕對路徑的方法 const require path const htmlwebpackplugin require html webpack plugin module.exports loader 配置 module 指定相容性做到哪個版本瀏覽器 targets plugins 的配置 ...