成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

IE兼容性

劉東 / 2150人閱讀

摘要:方式方式方式指向節(jié)點(diǎn)對(duì)象輸出事件對(duì)象輸出事件對(duì)象輸出事件對(duì)象指向節(jié)點(diǎn)對(duì)象輸出事件對(duì)象輸出事件對(duì)象輸出事件對(duì)象指向全局對(duì)象輸出事件對(duì)象如果是方式定義的時(shí)候也可以沒(méi)有形參但是被調(diào)用的時(shí)候一定會(huì)傳遞一個(gè)事件對(duì)象如果有形參則用接收如果沒(méi)有可以在函數(shù)


  
hello1
//方式1
hello2
//方式2
hello3
//方式3

如果是方式1,2,function定義的時(shí)候也可以沒(méi)有evt形參,但是被調(diào)用的時(shí)候一定會(huì)傳遞一個(gè)事件對(duì)象,如果有形參evt,則用evt接收,如果沒(méi)有,可以在函數(shù)內(nèi)直接通過(guò)event或arguments[0]訪問(wèn).
如果是方式3,當(dāng)是test()調(diào)用時(shí),則不會(huì)傳遞事件對(duì)象,evt和arguments[0]均輸出undefined.如果是test(evt)調(diào)用,則傳遞事件對(duì)象,evt和arguments[0]均輸出事件對(duì)象

以下內(nèi)容都是基于http://harttle.com/2015/08/14...的總結(jié)

事件處理函數(shù)中,我們通常使用this來(lái)獲取當(dāng)前被操作的對(duì)象,但對(duì)于不同的事件綁定方式,this可能不一定指代的是當(dāng)前被操作的對(duì)象.常見(jiàn)的事件綁定方式基本上是以下這些:
1.attachEvent: IE9以下(不包括IE9).
2.addEventListener: 支持DOM Level2 Event的瀏覽器中.
3.el.onclick = function() {}
4.


5.jQuery也提供了很多方法來(lái)方便地綁定事件.
addEventListener是現(xiàn)代web應(yīng)用中綁定事件的終極方法.

attachEvent與addEventListener的區(qū)別
1.支持的瀏覽器不同,attachEvent在IE9以下的版本中受到支持,其他的都支持addEventListener.
2.參數(shù)不同,addEventListener第三個(gè)參數(shù)可以指定是否捕獲,而attachEvent不支持捕獲.
3.事件名不同.attachEvent的第一個(gè)參數(shù)事件名前要加on.
4.this不同.詳情見(jiàn)下

attachEvent方式的事件綁定
attachEvent的this總是指向Window.例如:

el.attachEvent("onclick", function() {
  alert(this);
});

腳本設(shè)置onclick方式的事件綁定
設(shè)置DOM對(duì)象的onclick屬性,this總是指向被設(shè)置的DOM元素。例如:

document.getElementById("id1").onclick = function() {
  console.log(this);//
...
}

HTML中設(shè)置onclick方式的事件綁定
在HTML中設(shè)置onclick屬性等于讓W(xué)indow調(diào)用該函數(shù),于是this總是指向Window.例如:

addEventListener方式的事件綁定
addEventListener的this總是當(dāng)前正在處理事件的那個(gè)DOM對(duì)象,DOM Level2 Event Model中提到,事件處理包括捕獲階段/目標(biāo)階段/冒泡階段
圖片來(lái)源:http://www.w3.org/TR/DOM-Leve...
事件當(dāng)前正在流過(guò)哪個(gè)元素,this便指向哪個(gè)元素.比如兩級(jí)的DOM:

點(diǎn)擊div#l2后控制臺(tái)輸出為:

l1 capture 
?…?
? l2 target
?
? l1 bubbling
?…?
?

target與currentTarget
addEventListener的事件處理函數(shù)中的this不一定指向事實(shí)上被點(diǎn)擊的元素,但事件處理函數(shù)的參數(shù)event對(duì)象提供了target和currentTarget屬性來(lái)區(qū)分這當(dāng)前對(duì)象和目標(biāo)對(duì)象.我們可以將它們?nèi)枯敵隹纯?

l1.addEventListener("click", function(e) {
  console.log("l1 capture", this, e.currentTarget, e.target);
});
l2.addEventListener("click", function(e) {
  console.log("l2 target", this, e.currentTarget, e.target);
});
l1.addEventListener("click", function(e) {
  console.log("l1 bubbling", this, e.currentTarget, e.target);
});

結(jié)果是:

l1 capture  
?…?
?
?…?
?
?
? l2 target
?
?
?
?
?
? l1 bubbling
?…?
?
?…?
?
?
?

可見(jiàn)currentTarget總是和this相同,而target指向事實(shí)上被點(diǎn)擊的目標(biāo)DOM對(duì)象.

關(guān)于XMLHttpRequest的兼容性

添加響應(yīng)事件函數(shù)的兼容性

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81893.html

相關(guān)文章

  • DIV+CSS IE6/IE7/IE8/FF兼容問(wèn)題匯總

    摘要:下兼容問(wèn)題,這個(gè)最好處理,轉(zhuǎn)化成兼容就可以。暫時(shí)還沒(méi)找到專(zhuān)用的兼容。高度不適應(yīng)高度不適應(yīng)是當(dāng)內(nèi)層對(duì)象的高度發(fā)生變化時(shí)外層高度不能自動(dòng)進(jìn)行調(diào)節(jié),特別是當(dāng)內(nèi)層對(duì)象使用或時(shí)。只是目前并不支持。以上都是寫(xiě)中的一些兼容,建議遵循 1.IE8下兼容問(wèn)題,這個(gè)最好處理,轉(zhuǎn)化成ie7兼容就可以。在頭部加如下一段代碼,然后只要在IE7下兼容了,IE8下面也就兼容了 2.flaot浮動(dòng)造成IE6下面...

    silvertheo 評(píng)論0 收藏0
  • 一行代碼解決各種IE兼容問(wèn)題,IE6,IE7,IE8,IE9,IE10

    摘要:三創(chuàng)建時(shí)發(fā)現(xiàn)這么一句話(huà),不知其什么意思,百度如下這樣寫(xiě)可以達(dá)到的效果是如果安裝了,則使用來(lái)渲染頁(yè)面,如果沒(méi)安裝,則使用最高版本的內(nèi)核進(jìn)行渲染。 在網(wǎng)站開(kāi)發(fā)中不免因?yàn)楦鞣N兼容問(wèn)題苦惱,針對(duì)兼容問(wèn)題,其實(shí)IE給出了解決方案Google也給出了解決方案百度也應(yīng)用了這種方案去解決IE的兼容問(wèn)題 百度源代碼如下 ; 百度一下,你就知道 var wpo={start:new Date*1...

    tabalt 評(píng)論0 收藏0
  • 一行代碼解決各種IE兼容問(wèn)題,IE6,IE7,IE8,IE9,IE10

    摘要:三創(chuàng)建時(shí)發(fā)現(xiàn)這么一句話(huà),不知其什么意思,百度如下這樣寫(xiě)可以達(dá)到的效果是如果安裝了,則使用來(lái)渲染頁(yè)面,如果沒(méi)安裝,則使用最高版本的內(nèi)核進(jìn)行渲染。 在網(wǎng)站開(kāi)發(fā)中不免因?yàn)楦鞣N兼容問(wèn)題苦惱,針對(duì)兼容問(wèn)題,其實(shí)IE給出了解決方案Google也給出了解決方案百度也應(yīng)用了這種方案去解決IE的兼容問(wèn)題 百度源代碼如下 ; 百度一下,你就知道 var wpo={start:new Date*1...

    AnthonyHan 評(píng)論0 收藏0
  • 一行代碼解決各種IE兼容問(wèn)題,IE6,IE7,IE8,IE9,IE10

    摘要:三創(chuàng)建時(shí)發(fā)現(xiàn)這么一句話(huà),不知其什么意思,百度如下這樣寫(xiě)可以達(dá)到的效果是如果安裝了,則使用來(lái)渲染頁(yè)面,如果沒(méi)安裝,則使用最高版本的內(nèi)核進(jìn)行渲染。 在網(wǎng)站開(kāi)發(fā)中不免因?yàn)楦鞣N兼容問(wèn)題苦惱,針對(duì)兼容問(wèn)題,其實(shí)IE給出了解決方案Google也給出了解決方案百度也應(yīng)用了這種方案去解決IE的兼容問(wèn)題 百度源代碼如下 ; 百度一下,你就知道 var wpo={start:new Date*1...

    msup 評(píng)論0 收藏0
  • 一行代碼解決各種IE兼容問(wèn)題,IE6,IE7,IE8,IE9,IE10

    摘要:三創(chuàng)建時(shí)發(fā)現(xiàn)這么一句話(huà),不知其什么意思,百度如下這樣寫(xiě)可以達(dá)到的效果是如果安裝了,則使用來(lái)渲染頁(yè)面,如果沒(méi)安裝,則使用最高版本的內(nèi)核進(jìn)行渲染。 在網(wǎng)站開(kāi)發(fā)中不免因?yàn)楦鞣N兼容問(wèn)題苦惱,針對(duì)兼容問(wèn)題,其實(shí)IE給出了解決方案Google也給出了解決方案百度也應(yīng)用了這種方案去解決IE的兼容問(wèn)題 百度源代碼如下 ; 百度一下,你就知道 var wpo={start:new Date*1...

    zhou_you 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<