>  기사  >  웹 프론트엔드  >  Firefox 및 IE_javascript 기술에서 이벤트를 얻는 두 가지 방법에 대해

Firefox 및 IE_javascript 기술에서 이벤트를 얻는 두 가지 방법에 대해

WBOY
WBOY원래의
2016-05-16 17:45:081050검색

동료들이 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],
간단한 예는 다음과 같습니다. >코드 복사


코드는 다음과 같습니다.
function a(){ b() } function b() { alert(b ===args.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의 첫 번째 함수는 이벤트이며, 이는 인수.callee.caller.arguments[0]입니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.