Browser 的 JavaScript - Event 及其事件源的取得

咱們都知道 IE 和 FireFox 對「事件」取得的方式 不同 spa

(1) IE 可利用全局變量 window.event 事件

(2) FireFox 可利用傳遞參數的方法來取得 event ,或者若是沒有傳遞參數,則系統會自動將「事件」放在第一個參數 arguments[0] get



(1) 若是 event

e = arguments.callee.caller.arguments[0] || window.event; 變量

寫成 方法

e = arguments[0] || window.event; call

FireFox 在按下button後不會有反應,並且會在控制檯出現「TypeError: e is undefined」的錯誤信息錯誤

也就是 arguments[0]前面必定要加 arguments.callee.caller 
arguments


(2) 若是這兩句 參數

e = arguments.callee.caller.arguments[0] || window.event; 

a = e.target || e.srcElement; 

合併成一句也會出錯 

(2-1) 若是合併成 

var a = arguments.callee.caller.arguments[0].target || window.event.srcElement; 

則 FireFox不會出錯,因為FireFox的正確式寫在前面 

IE 則會出現「沒法取得屬性'target'的值:物件為null或未經定義」的錯誤 

(2-2) 若是合併成 

var a = window.event.srcElement; | arguments.callee.caller.arguments[0].target 

IE 不會錯,因為此次是IE的正確式寫在前面 

FireFox 就會出現「TypeError: window.event is undefined」的錯誤 

(2-3)也就是必定要先獲得正確表示的「事件」,再利用該「事件」來讀取「觸發事件的源頭」,必定要分兩步,不能合成一步 

相關文章
相關標籤/搜索