首頁  >  文章  >  web前端  >  關於火狐(firefox)及ie下event取得的兩種方法_javascript技巧

關於火狐(firefox)及ie下event取得的兩種方法_javascript技巧

WBOY
WBOY原創
2016-05-16 17:45:081052瀏覽

常有同事問我在火狐瀏覽器怎麼取得event的方法,大多是想取得event.keyCode的功能兩種方法
第一種方法

複製程式碼 程式碼如下:

function a(e){
e=e||window.event; alert(e.keyCode);
}

ie瀏覽器如下調用

複製代碼 程式碼如下:


firefox火狐瀏覽器如下呼叫

複製程式碼 程式碼如下:


這樣就可以呼叫成功
這種方法在firefox需要帶個參數過去,不是太好,下面介紹第二種方法

第二種方法
複製程式碼 程式碼如下:
function a(){
e=arguments.callee.caller.arguments[0] || window .event;
alert(e.keyCode);
}

ie和firefox下方都如下呼叫

複製程式碼 程式碼如下:


這裡要解釋一下arguments.callee.caller. arguments[0],
簡單範例如下:

複製程式碼 程式碼如下:




function a(){
b();
}
function b(){
alert(b === arguments.callee)
alert(b.caller === a)
alert(arguments.callee.caller === a)
}
a();


上面的這個例子會輸出3個true,表示當a()呼叫時,函數b與函數a的關係。
arguments.callee指的是目前的函數體arguments.callee.caller就是目前函數的上級函數所以當執行onclick="a()"時arguments.callee就是a(),arguments .callee.caller就是function onclick onclick的第一個能數就是event,也就是arguments.callee.caller.arguments[0]這個。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn