国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

關于IE瀏覽器以及Firefox下的javascript冒泡事件的響應層級

2019-11-21 00:12:26
字體:
來源:轉載
供稿:網友
假設在我們頁面有這么一段標簽:
復制代碼 代碼如下:

<body>
  <div id="testDiv" style="width:200px;height:200px;background:#c0c0c0;"></div>
</body>

現在在頁面加入這么一段腳本:
復制代碼 代碼如下:

<script type="text/javascript">

window.onload=function(){  //在各個層級的元素上綁定事件
  window.onclick=func;
  document.onclick=func;
  document.getElementById("timeDiv").onclick=func;
  document.body.onclick=func;
}
function func(){  //響應函數,輸出響應的元素
  document.getElementById("timeDiv").innerHTML+=this+"<br>";
}

在firefox以及IE 8下打開頁面,在標簽testDiv(灰色方塊)上單擊,結果分別如下截圖:

  
firefox下結果

IE 8下結果

可以看到,兩者結果并不相同?究竟為什么會這樣呢?
原來是由于IE瀏覽器以及Firefox對于冒泡型事件的支持層次不同造成的。(如對冒泡事件不是很了解可先查詢相關資料)
(1)在IE 6以及后續版本,冒泡事件支持的層級達到document對象。
(2)在firefox(準確的說應該是Mozilla1.0以及更高版本),對冒泡事件的支持一直上升到window窗口對象。
于是就造成了上面事件響應結果的不同。

另外,有個有意思的地方不知道你注意到了沒有?就是事件目標的響應順序。(冒泡事件的響應順序。。。好像有點廢話)我們知道,firefox同時支持兩種事件模型,也就是:捕獲型事件和冒泡型事件。在這里明顯事件處理函數作用在了冒泡階段。也就是說,如果我們采用傳統的直接給事件處理函數屬性賦值的話,比方說:

復制代碼 代碼如下:

document.body.onclick=func;

事件處理函數將被添加到事件的冒泡階段。

以上就是對于IE、firefox里面冒泡事件響應層級的一點介紹,同時順帶介紹了采用傳統事件處理函數直接賦值的默認處理。詳細的講解可參見大牛Nicholas C. Zakas所著的《javascript高級程序設計》。

PS:以上內容僅僅為個人讀書筆記,如有錯漏,隨時歡迎指正。同時希望能有更多的前端愛好者們共同分享你們的心得!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 林甸县| 信阳市| 盖州市| 德钦县| 社旗县| 彝良县| 弥渡县| 阜平县| 康定县| 陵川县| 武汉市| 临沭县| 肇东市| 驻马店市| 翁源县| 萝北县| 琼海市| 阳城县| 新民市| 合山市| 平顶山市| 视频| 遂川县| 武汉市| 东辽县| 武冈市| 崇仁县| 进贤县| 苍南县| 朝阳市| 田东县| 上虞市| 离岛区| 宁陕县| 吴川市| 新蔡县| 长乐市| 昌邑市| 伊金霍洛旗| 青海省| 广昌县|