동료들이 Firefox에서 이벤트를 얻는 방법을 자주 묻습니다. 대부분은 event.keyCode의 기능을 얻고 싶어합니다.
첫 번째 방법:
function a(e){
e=e||window.event;
Alert(e.keyCode)
}
즉, 브라우저는 다음과 같이 호출합니다
firefox는 다음을 호출합니다
>
이렇게 해야 호출이 성공할 수 있습니다
이 방법은 Firefox에서 매개변수가 필요한데, 이는 별로 좋지 않습니다. 두 번째 방법은
두 번째 방법
입니다. : function a(){
e=arguments.callee.caller.arguments[0 ] || window.event;
alert(e.keyCode)
}
ie와 firefox는 모두 다음과 같이 호출합니다. 🎜>
설명은 다음과 같습니다.args.callee.caller.arguments[0],
간단한 예는 다음과 같습니다. >코드 복사
코드는 다음과 같습니다.
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의 첫 번째 함수는 이벤트이며, 이는 인수.callee.caller.arguments[0]입니다.