ホームページ  >  記事  >  ウェブフロントエンド  >  FirefoxとIE_javascriptスキルでイベントを取得する2つの方法について

FirefoxとIE_javascriptスキルでイベントを取得する2つの方法について

WBOY
WBOYオリジナル
2016-05-16 17:45:081054ブラウズ

同僚からよく Firefox でイベントを取得する方法を尋ねられます。ほとんどの場合、event.keyCode の関数を取得したいと考えています。
最初の方法:

コードをコピー コードは次のとおりです。

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

ブラウザは次のように呼び出します
コードをコピーします コードは次のとおりです。



Firefox は次の
を呼び出します。 コードをコピーします コードは次のとおりです。

>
このようにして、呼び出しは成功します
このメソッドには Firefox のパラメータが必要ですが、これはあまり良くありません。

2 番目のメソッド。 :
コードをコピー コードは次のとおりです:
function a(){
e=arguments.callee.caller.arguments[0 ] || window.event;
alert(e.keyCode)
}

ie と Firefox はどちらも次のように呼び出します。 🎜>

コードをコピーします コードは次のとおりです:


説明は次のとおりです argument.callee.caller.arguments[0],
簡単な例は次のとおりです:


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


上記の例は、 a() が呼び出されたときに関数 b と関数 a の関係を示す 3 つの true を出力します。
arguments.callee は現在の関数本体を参照します
arguments.callee.caller は現在の関数の上位関数です
したがって、onclick="a()" が実行されると、arguments.callee は a() になります、引数 .callee.caller は関数 onclick
onclick の最初の関数はevent、つまりarguments.callee.caller.arguments[0]です。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。