js的相容性及處理方法

2021-10-08 20:39:45 字數 1737 閱讀 4345

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 的配置 ...