亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Javascript Event事件中IE與標(biāo)準(zhǔn)DOM的比較

 更新時(shí)間:2010年04月23日 17:36:57   作者:  
說是IE與DOM的比較,其實(shí)還是瀏覽器之間的比較,眾多的瀏覽器中,IE獨(dú)樹一幟,并且占有大部分用戶市場(chǎng),后來的標(biāo)準(zhǔn)DOM雖然不少優(yōu)點(diǎn)之處,但畢竟一般用戶不關(guān)心也不知道這些,代碼編寫過程中,往往需要兼顧多個(gè)瀏覽器。
1.事件流的區(qū)別

IE采用冒泡型事件 Netscape使用捕獲型事件 DOM使用先捕獲后冒泡型事件
示例:
復(fù)制代碼 代碼如下:

<body>
<div>
<button>點(diǎn)擊這里</button>
</div>
</body>


冒泡型事件模型: button->div->body (IE事件流)

捕獲型事件模型: body->div->button (Netscape事件流)

DOM事件模型: body->div->button->button->div->body (先捕獲后冒泡)

2.事件偵聽函數(shù)的區(qū)別

IE使用:
[Object].attachEvent("name_of_event_handler", fnHandler); //綁定函數(shù)
[Object].detachEvent("name_of_event_handler", fnHandler); //移除綁定

DOM使用:
[Object].addEventListener("name_of_event", fnHandler, bCapture); //綁定函數(shù)
[Object].removeEventListener("name_of_event", fnHandler, bCapture); //移除綁定

bCapture參數(shù)用于設(shè)置事件綁定的階段,true為捕獲階段,false為冒泡階段。

示例代碼:
復(fù)制代碼 代碼如下:

function addEventHandler(object,eventType,fnHandler){
if(object.addEventListener){ //DOM
object.addEventListener(eventType, fnHandler, false);
}else if(object.attachEvent){ //IE
object.attachEvent("on"+eventType, fnHandler);
}else{ //others
object["on"+eventType]=fnHandler;
}
}
function removeEventHandler(object,eventType,fnHandler){
if(object.removeEventListener){ //DOM
object.removeEventListener(eventType, fnHandler, false);
}else if(object.detachEvent){ //IE
object.detachEvent("on"+eventType, fnHandler);
}else{ //others
object["on"+eventType]=null;
}
}
addEventHandler(oDiv,"click",function(){alert("clicked")});


3.事件對(duì)象定位(獲取)

IE:事件對(duì)象是window對(duì)象的一個(gè)屬性event,event只能在事件發(fā)生時(shí)訪問,事件處理函數(shù)執(zhí)行完畢,事件對(duì)象被銷毀。

示例:
復(fù)制代碼 代碼如下:

document.onclick=function(){
alert(window.event.type);
}

DOM:event對(duì)象必須作為唯一的參數(shù)傳遞給事件處理函數(shù),且必須為第一個(gè)參數(shù)。

示例:
復(fù)制代碼 代碼如下:

document.onclick=function(){
alert(arguments[0].type);
}


4.獲取目標(biāo)(target)
IE:var oTarget=oEvent.srcElement;
DOM:var oTarget=oEvent.target;

5.阻止事件默認(rèn)行為

IE:oEvent.returnValue=false;
DOM:oEvent.preventDefault();

示例:
復(fù)制代碼 代碼如下:

//屏蔽網(wǎng)頁右鍵菜單
document.body.oncontextmenu=function(oEvent){
if(document.all){
oEvent=window.event;
oEvent.returnValue=false;
}else{
oEvent.preventDefault();
}
}


6.停止事件復(fù)制(冒泡)
IE:oEvent.cancelBubble=true;
DOM:oEvent.stopPropagation();

示例:

復(fù)制代碼 代碼如下:

button.onclick=function(oEvent){
if(document.all){
oEvent=window.event;
oEvent.cancelBubble=true;
}else{
oEvent.stopPropagation();
}
}

附一個(gè)代碼測(cè)試窗口:(感覺有些時(shí)候這種方式比alert()還好用)

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

相關(guān)文章

  • firefox firebug中文入門教程 腳本之家新年特別版

    firefox firebug中文入門教程 腳本之家新年特別版

    最近看了一篇文章感觸頗深,對(duì)于firebug作為腳本之家的編輯經(jīng)??吹牡?,但可悲的是沒怎么用過,不是不用那個(gè)而是不會(huì)用,剛好看了一篇基礎(chǔ)的文章特別整理下。
    2010-01-01
  • js實(shí)現(xiàn)城市級(jí)聯(lián)菜單的2種方法

    js實(shí)現(xiàn)城市級(jí)聯(lián)菜單的2種方法

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)城市級(jí)聯(lián)菜單的2種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • My Desktop :) 桌面式代碼

    My Desktop :) 桌面式代碼

    My Desktop 桌面式 代碼
    2008-12-12
  • 關(guān)于JS數(shù)組追加數(shù)組采用push.apply的問題

    關(guān)于JS數(shù)組追加數(shù)組采用push.apply的問題

    JS數(shù)組追加數(shù)組沒有現(xiàn)成的函數(shù),這么多年我已經(jīng)習(xí)慣了a.push.apply(a, b);這種自以為很酷的,不需要寫for循環(huán)的寫法,一直也沒遇到什么問題,直到今天我要append的b是個(gè)很大的數(shù)組時(shí)才遇到了坑。
    2014-06-06
  • 深入解析ECMAScript?2023?中的新數(shù)組方法

    深入解析ECMAScript?2023?中的新數(shù)組方法

    ECMAScript?是一種標(biāo)準(zhǔn)化的腳本語言,它是?JavaScript?的規(guī)范。ECMAScript?2023?是?JavaScript?編程語言的更新,旨在帶來改進(jìn)并使?JavaScript?程序可預(yù)測(cè)和可維護(hù),這篇文章主要介紹了探索?ECMAScript?2023?中的新數(shù)組方法,需要的朋友可以參考下
    2023-12-12
  • JavaScript requestAnimationFrame動(dòng)畫詳解

    JavaScript requestAnimationFrame動(dòng)畫詳解

    這篇文章主要為大家詳細(xì)介紹了JavaScript requestAnimationFrame動(dòng)畫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • js重寫alert事件(避免alert彈框標(biāo)題出現(xiàn)網(wǎng)址)

    js重寫alert事件(避免alert彈框標(biāo)題出現(xiàn)網(wǎng)址)

    這篇文章主要給大家介紹了關(guān)于js重寫alert事件的相關(guān)資料,這樣可以避免alert彈框標(biāo)題出現(xiàn)網(wǎng)址的情況,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 通過滑動(dòng)翻頁效果實(shí)現(xiàn)和移動(dòng)端click事件問題

    通過滑動(dòng)翻頁效果實(shí)現(xiàn)和移動(dòng)端click事件問題

    這篇文章主要介紹了滑動(dòng)翻頁效果實(shí)現(xiàn)和移動(dòng)端click事件問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • JavaScript類型系統(tǒng)之正則表達(dá)式

    JavaScript類型系統(tǒng)之正則表達(dá)式

    正則又叫規(guī)則或模式,是一個(gè)強(qiáng)大的字符串匹配工具。javascript通過RegExp類型來支持正則表達(dá)式,本文給大家介紹javascript類型系統(tǒng)之正則表達(dá)式,對(duì)js正則表達(dá)式相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • JS實(shí)現(xiàn)一個(gè)按鈕的方法

    JS實(shí)現(xiàn)一個(gè)按鈕的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)一個(gè)按鈕的方法,實(shí)例分析了使用js實(shí)現(xiàn)一個(gè)按鈕的功能與相關(guān)技巧,需要的朋友可以參考下
    2015-02-02

最新評(píng)論