Firefox의 onclick="foo()"에 있는 foo()는 이벤트 객체 매개변수를 자동으로 전달할 수 없지만 onclick으로 전달됩니다. 함수는 기본적으로 시스템에서 생성됩니다. 예를 들어 getEvent.caller.caller.arguments[0]을 통해 이벤트 객체를 가져올 수 있습니다. 따라서 getEvent를 다음과 같이 최적화할 수 있습니다(yui_2.7.0b의 event/event-debug.js에 있는 getEvent 메소드 참조).
function getEvent(event) { var ev = event || window.event if (!ev) { var c = this.getEvent.caller; while (c) { ev = c.arguments[0] if (ev && (Event == ev.constructor || MouseEvent) == ev.constructor)) { /Yi Fei 참고: YUI 소스 코드 BUG, ev.constructor는 반드시 이벤트가 아닐 수도 있습니다. break } c = c.caller; 🎜>} } return ev; }
물론 onclick="foo()"에 매개변수를 수동으로 전달하는 매우 간단한 해결책이 있습니다. :