>웹 프론트엔드 >JS 튜토리얼 >ie와 firefox_javascript 기술 간의 비호환성에 대한 솔루션 모음

ie와 firefox_javascript 기술 간의 비호환성에 대한 솔루션 모음

WBOY
WBOY원래의
2016-05-16 18:53:391034검색
1. Firefox 및 IE 이벤트 처리
IE에서는 이벤트 객체가 전역 변수로 저장되어 유지됩니다. 사용자
또는 기타 이벤트에 의해 트리거되는 모든 브라우저 이벤트는 window.event 객체를 업데이트합니다. 따라서 코드에서는 간단히 window.event
를 호출하여 이벤트 개체를 쉽게 얻을 수 있으며, 그런 다음 event.srcElement를 사용하여 추가 처리를 위해 이벤트를 트리거한 요소를 가져올 수 있습니다.
ff에서는 이벤트 개체가 아닙니다. 전역 객체, 일반적으로 이 경우 현장에서 발생하고 현장에서 사용되는 경우 ff는 자동으로 이벤트 객체
를 해당 이벤트 처리 함수에 전달합니다. 코드에서 함수의 첫 번째 매개변수는 ff 아래의 이벤트 객체입니다.


2. Firefox 및 IE는 손 포인터 커서와 호환되지 않습니다.

손 포인터에는 커서:손 및 커서가 있습니다. 포인터를 작성하는 방법에는 두 가지가 있습니다. 그 중 커서:손은 ff에서 지원되지 않으며 오류가 반환됩니다! <script> <BR>function foo4(){ <BR>var evt=getEvent(); <BR>var element=evt.srcElement || evt.target ; <BR>alert(element.id) <BR>} <BR>function getEvent() <BR>{ //同时兼容ie和ff的写法 <BR>if(document.all) return window.event; <BR>func=getEvent.caller; <BR>while(func!=null){ <BR>var arg0=func.arguments[0]; <BR>if(arg0){ <BR>if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){ <BR>return arg0; <BR>} <BR>} <BR>func=func.caller; <BR>} <BR>return null; <BR>} <BR></script> 그냥 커서:포인터를 사용하세요. ff와 ie 모두 지원됩니다!
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.