javascript在事件監(jiān)聽(tīng)方面的兼容性小結(jié)
更新時(shí)間:2010年04月07日 11:46:45 作者:
javascript 在事件監(jiān)聽(tīng)方面的兼容性總結(jié),注意是由于多個(gè)瀏覽器的不一致,導(dǎo)致大家在js書(shū)寫(xiě)時(shí)需要考慮多個(gè)瀏覽器的兼容性。
1,IE使用attachEvent/detachEvent方法來(lái)添加和刪除事件監(jiān)聽(tīng)器;w3c使用addEventListener/removeEventListener方法。
2,IE對(duì)其事件使用onevent的命名方式,而w3c的是event的命名方式。
3,IE事件監(jiān)聽(tīng)器內(nèi)使用的是一個(gè)全局的Event對(duì)象,而w3c是將event對(duì)象作為參數(shù)傳遞給監(jiān)聽(tīng)器。
4,為了避免觸發(fā)默認(rèn)的事件行為,IE的做法是要求程序員設(shè)置Event對(duì)象中的returnValue屬性值為false,而w3c的做法是執(zhí)行preventDefault方法。
5,IE沒(méi)有提供對(duì)事件捕獲階段的支持。
6,要停止事件的傳遞,IE的做法是設(shè)置event對(duì)象的cancelBubble為true,而w3c的做法是設(shè)置執(zhí)行stopPropagation方法。
7,IE將事件監(jiān)聽(tīng)器當(dāng)做一個(gè)獨(dú)立的函數(shù)來(lái)調(diào)用,而w3c中它是作為對(duì)象的方法來(lái)調(diào)用的,這表示在ie中事件監(jiān)聽(tīng)器中的this關(guān)鍵字指向的不是事件發(fā)生對(duì)象而是一個(gè)沒(méi)用的全局對(duì)象(window對(duì)象)。
8,IE在使用事件監(jiān)聽(tīng)器方面存在內(nèi)存泄露問(wèn)題。在IE瀏覽器中,如果要為某個(gè)元素創(chuàng)建一個(gè)事件監(jiān)聽(tīng)器,并且在監(jiān)聽(tīng)器中使用該元素,則在用戶(hù)進(jìn)入其他頁(yè)面之前,該監(jiān)聽(tīng)器以及相關(guān)的DOM節(jié)點(diǎn)作占據(jù)的內(nèi)存空間不會(huì)被釋放。
2,IE對(duì)其事件使用onevent的命名方式,而w3c的是event的命名方式。
3,IE事件監(jiān)聽(tīng)器內(nèi)使用的是一個(gè)全局的Event對(duì)象,而w3c是將event對(duì)象作為參數(shù)傳遞給監(jiān)聽(tīng)器。
4,為了避免觸發(fā)默認(rèn)的事件行為,IE的做法是要求程序員設(shè)置Event對(duì)象中的returnValue屬性值為false,而w3c的做法是執(zhí)行preventDefault方法。
5,IE沒(méi)有提供對(duì)事件捕獲階段的支持。
6,要停止事件的傳遞,IE的做法是設(shè)置event對(duì)象的cancelBubble為true,而w3c的做法是設(shè)置執(zhí)行stopPropagation方法。
7,IE將事件監(jiān)聽(tīng)器當(dāng)做一個(gè)獨(dú)立的函數(shù)來(lái)調(diào)用,而w3c中它是作為對(duì)象的方法來(lái)調(diào)用的,這表示在ie中事件監(jiān)聽(tīng)器中的this關(guān)鍵字指向的不是事件發(fā)生對(duì)象而是一個(gè)沒(méi)用的全局對(duì)象(window對(duì)象)。
8,IE在使用事件監(jiān)聽(tīng)器方面存在內(nèi)存泄露問(wèn)題。在IE瀏覽器中,如果要為某個(gè)元素創(chuàng)建一個(gè)事件監(jiān)聽(tīng)器,并且在監(jiān)聽(tīng)器中使用該元素,則在用戶(hù)進(jìn)入其他頁(yè)面之前,該監(jiān)聽(tīng)器以及相關(guān)的DOM節(jié)點(diǎn)作占據(jù)的內(nèi)存空間不會(huì)被釋放。
您可能感興趣的文章:
- Javascript 的addEventListener()及attachEvent()區(qū)別分析
- window.addEventListener來(lái)解決讓一個(gè)js事件執(zhí)行多個(gè)函數(shù)
- JS在IE和FF下attachEvent,addEventListener學(xué)習(xí)筆記
- javascript attachEvent和addEventListener使用方法
- JavaScript使用addEventListener添加事件監(jiān)聽(tīng)用法實(shí)例
- javascript事件監(jiān)聽(tīng)與事件委托實(shí)例詳解
- JavaScript綁定事件監(jiān)聽(tīng)函數(shù)的通用方法
- js事件監(jiān)聽(tīng)器用法實(shí)例詳解
- js事件監(jiān)聽(tīng)機(jī)制(事件捕獲)總結(jié)
- javascript 傳統(tǒng)事件模型構(gòu)造的事件監(jiān)聽(tīng)器實(shí)現(xiàn)代碼
- js中addEventListener()與removeEventListener()用法案例分析
相關(guān)文章
uniapp實(shí)現(xiàn)附近商家定位的示例代碼
本文主要介紹了uniapp實(shí)現(xiàn)附近商家定位的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
利用Keydown事件阻止用戶(hù)輸入實(shí)現(xiàn)代碼
這篇文章主要介紹了利用Keydown事件阻止用戶(hù)輸入的具體實(shí)現(xiàn),需要的朋友可以參考下2014-03-03
JS組件Bootstrap實(shí)現(xiàn)下拉菜單效果代碼
這篇文章主要為大家詳細(xì)介紹了JS組件Bootstrap實(shí)現(xiàn)下拉菜單效果代碼,感興趣的小伙伴們可以參考一下2016-04-04
JS與SQL方式隨機(jī)生成高強(qiáng)度密碼示例
這篇文章主要介紹了JS與SQL方式隨機(jī)生成高強(qiáng)度密碼,結(jié)合實(shí)例形式分析了javascript方式與SQL方式生成高強(qiáng)度密碼的相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
兼容IE,firefox的獲取節(jié)點(diǎn)的文本值的javascript代碼
javascript獲取節(jié)點(diǎn)的文本值,已經(jīng)考慮了兼容性。大家可以放心使用。注意了這里的兼容沒(méi)有使用innerText,如果要使用兼容innerText,請(qǐng)參考腳本之家以前發(fā)布的文章。2009-12-12
小程序server請(qǐng)求微信服務(wù)器超時(shí)的解決方法
這篇文章主要介紹了小程序server請(qǐng)求微信服務(wù)器超時(shí)的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
javascript實(shí)現(xiàn)的猜數(shù)小游戲完整實(shí)例代碼
這篇文章主要介紹了javascript實(shí)現(xiàn)的猜數(shù)小游戲,游戲中用戶(hù)共有10次猜測(cè)機(jī)會(huì),并且每次都有不同的提示信息,該游戲涉及javascript流程控制與數(shù)值運(yùn)算的相關(guān)技巧,需要的朋友可以參考下2016-05-05
javascript客戶(hù)端遍歷控件與獲取父容器對(duì)象示例代碼
本篇文章主要是對(duì)javascript客戶(hù)端遍歷控件與獲取父容器對(duì)象示例代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01
Bootstrap select多選下拉框?qū)崿F(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Bootstrap select多選下拉框?qū)崿F(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下代碼2016-12-12

