瀏覽器事件是冒泡還是捕獲

2021-09-12 06:04:13 字數 927 閱讀 4945

(1)冒泡型事件:事件按照從最特定的事件目標到最不特定的事件目標(document物件)的順序觸發。

ie 5.5: div -> body -> document

ie 6.0: div -> body -> html -> document

mozilla 1.0: div -> body -> html -> document -> window

(2)捕獲型事件(event capturing):事件從最不精確的物件(document 物件)開始觸發,然後到最精確(也可以在視窗級別捕獲事件,不過必須由開發人員特別指定)。

(3)dom事件流:同時支援兩種事件模型:捕獲型事件和冒泡型事件,但是,捕獲型事件先發生。兩種事件流會觸及dom中的所有物件,從document物件開始,也在document物件結束。

支援w3c標準的瀏覽器在新增事件時用addeventlistener(event,fn,usecapture)方法,基中第3個引數usecapture是乙個boolean值,用來設定事件是在事件捕獲時執行,還是事件冒泡時執行。而不相容w3c的瀏覽器(ie)用attachevent()方法,此方法沒有相關設定,不過ie的事件模型預設是在事件冒泡時執行的,也就是在usecapture等於false的時候執行,所以把在處理事件時把usecapture設定為false是比較安全,也實現相容瀏覽器的效果。

w3c明智的在這場爭鬥中選擇了乙個擇中的方案。任何發生在w3c事件模型中的事件,首是進入捕獲階段,直到達到目標元素,再進入冒泡階段

為乙個web開發者,你可以選擇是在捕獲階段還是冒泡階段繫結事件處理函式,這是通過addeventlistener()方法實現的,如果這個函式的最後乙個引數是true,則在捕獲階段繫結函式,反之false,在冒泡階段繫結函式。

瀏覽器事件捕獲冒泡以及阻止冒泡

瀏覽器事件捕獲冒泡以及阻止冒泡一 瀏覽器的dom事件流 dom事件流有三個階段,捕獲階段 目標階段 冒泡階段,不管是有沒有繫結事件,只要發生點選事件,事件的處理將從dom層次的根開始,而不是從觸發事件的目標元素開始,事件被從目標元素的所有祖先元素依次往下傳遞,直到目標元素然後再從目標元素冒泡到根元素...

捕獲鍵盤事件 相容各瀏覽器

例子 遮蔽瀏覽器f5重新整理,代用重新整理iframe框架 捕獲f5事件 body keydown function e else 呼叫重新整理函式 refresh 重新整理當前框架 function refresh 其他鍵盤事件 code 13 enter回車事件 code 37 左方向鍵 cod...

捕獲鍵盤事件 且相容各瀏覽器

例子 遮蔽瀏覽器f5重新整理,代用重新整理iframe框架 複製 如下 捕獲f5事件 body keydown function e else 呼叫重新整理函式 refrewww.cppcns.comsh 重新整理當前框架 function refresh 其他鍵盤事程式設計客棧件 code 13 ...