집 >
웹 프론트엔드 >
JS 튜토리얼 >
ie와 firefox_javascript 기술 간의 비호환성에 대한 솔루션 모음
ie와 firefox_javascript 기술 간의 비호환성에 대한 솔루션 모음
WBOY
풀어 주다: 2016-05-16 18:53:39
원래의
1022명이 탐색했습니다.
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 모두 지원됩니다!