1. Window.event
【분석 지침 instr 코드를 먼저 살펴보십시오
코드 사본은 다음과 같습니다.
함수 et ()
{
경고 (이벤트); // 즉 : [개체]
}
위의 코드의 결과 IE에서 실행되는 결과는 [Object]이지만 Firefox에서는 실행할 수 없습니다.
이벤트는 IE에서 창 객체의 속성으로 직접 사용할 수 있지만 Firefox에서는 W3C 모델이 사용되므로 매개 변수를 전달하는 방법을 통해 이벤트를 전파합니다. 즉, 기능에 대한 이벤트 응답 인터페이스를 제공해야합니다.
[호환성 처리] 이벤트 판단을 추가하고 브라우저에 따라 올바른 이벤트를 얻습니다.
코드 사본은 다음과 같습니다.
함수 et ()
{
evt = evt? evt : (window.event? window.event : null);
// IE 및 Firefox와 호환됩니다
경고 (EVT);
}
2. 키보드 값 획득
[분석 참고] IE 및 Firefox에서 키보드 값을 얻는 방법은 다릅니다. Firefox 하에서 이벤트가 이벤트와 동일하다는 것을 이해할 수 있습니다. 서로의 차이점에 대해서
【호환 처리】
코드를 복사하십시오
코드 사본은 다음과 같습니다.
기능 mykeypress (evt) {
// KeyboardEvent 객체를 얻으려면 IE 및 Firefox와 호환됩니다
EVT = (EVT)? evt : ((window.event)? window.event : "")
// keyboardevent 객체의 키 값을 얻으려면 IE 및 Firefox와 호환됩니다.
var key = evt.keycode? evt.keycode : evt. whith;
if (evt.ctrlkey && (key == 13 || key == 10)) {
// ctrl과 Enter는 동시에 누릅니다
// 무언가를합니다.
}
}
3. 이벤트 소스 획득
[분석 참고] 이벤트 대의원을 사용할 때 이벤트 소스 획득을 통해 이벤트가 어떤 요소를 결정할 수 있는지 확인할 수 있습니다. 그러나 즉, 이벤트 객체에는 srcelement 속성이 있지만 대상 특성은 없습니다. Firefox에서 짝수 객체에는 대상 특성이 있지만 srcelement 속성은 없습니다.
【호환 처리】
코드 사본은 다음과 같습니다.
ele = function (evt) {// 현재 이벤트가 작동하는 객체를 포착
evt = evt || window.event;
반품
(obj = event.srcelement? event.srcelement : event.target;);
}
4. 이벤트 모니터링
[분석 참고] 이벤트 청취 및 처리 측면에서 IE는 두 가지 인터페이스를 제공합니다. 첨부 및 Detachevent, Firefox는 addeventListener 및 RemoveEventListener를 제공합니다.
[호환성 처리] 가장 간단한 호환성 처리는이 두 인터페이스 세트를 캡슐화하는 것입니다.
코드 사본은 다음과 같습니다.
함수 addevent (Elem, EventName, Handler) {
if (elem.attachevent) {
elem.attachevent ( "on" + eventName, function () {
handler.call (elem)});
// 여기에서 콜백 함수 호출을 사용 하고이 점을 Elem에게 두십시오.
} else if (elem.addeventListener) {
elem.addeventListener (EventName, Handler, False);
}
}
함수 removeEvent (Elem, EventName, Handler) {
if (elem.detachevent) {
elem.detachevent ( "on" + eventName, function () {
handler.call (elem)});
// 여기에서 콜백 함수 호출을 사용 하고이 점을 Elem에게 두십시오.
} else if (elem.removeEventListener) {
elem.removeEventListener (EventName, Handler, False);
}
}
Firefox에서는 이벤트 처리 기능이 청취 된 요소 자체를 가리키지 만 콜백 함수 호출을 사용하여 현재 컨텍스트가 듣는 요소를 가리 키도록 할 수 있습니다.
5. 마우스 위치
[분석 참고] IE에서 짝수 객체에는 X 및 Y 속성이 있지만 Pagex 및 Pagey 속성은 없습니다. Firefox에서 짝수 객체에는 pagex 및 pagey 속성이 있지만 x 및 y 속성은 없습니다.
[호환성 처리] MX (mx = event.x? event.x : event.pagex;)를 사용하여 event.x 또는 event.pagex에서 firefox에서 event.x를 대체합니다. 복잡한 지점에 대해서는 절대 위치를 고려해야합니다.
코드 사본은 다음과 같습니다.
함수 getAbspoint (e) {
var x = E.OffSetLeft, y = E.OffSetTop;
while (e = e.offsetparent) {
x += E.OffSetLeft;
y += E.OffSetTop;
}
경고 ( "x :" + x + "," + "y :" + y);
}