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

