關(guān)于火狐(firefox)及ie下event獲取的兩種方法
更新時間:2012年12月27日 09:39:44 作者:
經(jīng)常有同事問我在火狐瀏覽器怎么獲取event的方法,大多是想獲取event.keyCode的功能,接下來為您介紹兩種實(shí)現(xiàn)方法,需要了解的朋友可以參考下
經(jīng)常有同事問我在火狐瀏覽器怎么獲取event的方法,大多是想獲取event.keyCode的功能兩種方法
第一種方法:
function a(e){
e=e||window.event;
alert(e.keyCode);
}
ie瀏覽器如下調(diào)用
<body onclick="a()">
firefox火狐瀏覽器如下調(diào)用
<body onclick="a(event)">
這樣就可以調(diào)用成功
這種方法在firefox需要帶個參數(shù)過去,不是太好,下面介紹第二種方法
第二種方法:
function a(){
e=arguments.callee.caller.arguments[0] || window.event;
alert(e.keyCode);
}
ie和firefox下都如下調(diào)用
<body onclick="a()">
這里要解釋一下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,表明當(dāng)a()調(diào)用時,函數(shù)b與函數(shù)a的關(guān)系。
arguments.callee指的就是當(dāng)前的函數(shù)體
arguments.callee.caller就是當(dāng)前函數(shù)的上級函數(shù)
所以當(dāng)執(zhí)行onclick="a()"時arguments.callee就是a(),arguments.callee.caller就是function onclick
onclick的第一個能數(shù)就是event,也就是arguments.callee.caller.arguments[0]這個。
第一種方法:
復(fù)制代碼 代碼如下:
function a(e){
e=e||window.event;
alert(e.keyCode);
}
ie瀏覽器如下調(diào)用
復(fù)制代碼 代碼如下:
<body onclick="a()">
firefox火狐瀏覽器如下調(diào)用
復(fù)制代碼 代碼如下:
<body onclick="a(event)">
這樣就可以調(diào)用成功
這種方法在firefox需要帶個參數(shù)過去,不是太好,下面介紹第二種方法
第二種方法:
復(fù)制代碼 代碼如下:
function a(){
e=arguments.callee.caller.arguments[0] || window.event;
alert(e.keyCode);
}
ie和firefox下都如下調(diào)用
復(fù)制代碼 代碼如下:
<body onclick="a()">
這里要解釋一下arguments.callee.caller.arguments[0],
簡單例子如下:
復(fù)制代碼 代碼如下:
function a(){
b();
}
function b(){
alert(b === arguments.callee)
alert(b.caller === a)
alert(arguments.callee.caller === a)
}
a();
上面的這個例子將輸出3個true,表明當(dāng)a()調(diào)用時,函數(shù)b與函數(shù)a的關(guān)系。
arguments.callee指的就是當(dāng)前的函數(shù)體
arguments.callee.caller就是當(dāng)前函數(shù)的上級函數(shù)
所以當(dāng)執(zhí)行onclick="a()"時arguments.callee就是a(),arguments.callee.caller就是function onclick
onclick的第一個能數(shù)就是event,也就是arguments.callee.caller.arguments[0]這個。
相關(guān)文章
JavaScript必備的斷點(diǎn)調(diào)試技巧總結(jié)(推薦)
打斷點(diǎn)操作很簡單,核心的問題在于,斷點(diǎn)怎么打才能夠排查出代碼的問題所在呢?下面這篇文章主要給大家總結(jié)介紹了關(guān)于JavaScript必備的斷點(diǎn)調(diào)試技巧,需要的朋友可以參考下2021-09-09《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記七:Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)組合模式詳解
這篇文章主要介紹了Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)組合模式,結(jié)合實(shí)例形式分析了《javascript設(shè)計(jì)模式》中Javascript面向?qū)ο蠼M合模式相關(guān)概念、原理、定義、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04基于JS實(shí)現(xiàn)橫線提示輸入驗(yàn)證碼隨驗(yàn)證碼輸入消失(js驗(yàn)證碼的實(shí)現(xiàn))
最近在開微信的頁面,在項(xiàng)目需求中遇到之前沒有做過的功能,要求橫線提示輸入驗(yàn)證碼隨驗(yàn)證碼輸入橫線消失,基于js怎么實(shí)現(xiàn)的呢?下面小編給大家分享基于js實(shí)現(xiàn)驗(yàn)證碼功能,感興趣的朋友一起看看吧2016-10-10全面解析Bootstrap表單使用方法(表單控件狀態(tài))
這篇文章全面解析了Bootstrap表單的使用方法,本文重點(diǎn)介紹Bootstrap表單控件狀態(tài)的三種情況,感興趣的小伙伴們可以參考一下2015-11-11JavaScript進(jìn)階教程之函數(shù)的定義、調(diào)用及this指向問題詳解
這篇文章主要給大家介紹了關(guān)于JavaScript進(jìn)階教程之函數(shù)的定義、調(diào)用及this指向問題的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-09-09