집 >
웹 프론트엔드 >
JS 튜토리얼 >
Firefox 및 IE 호환성 문제 및 Solutions_javascript 기술 요약
Firefox 및 IE 호환성 문제 및 Solutions_javascript 기술 요약
WBOY
풀어 주다: 2016-05-16 17:20:44
원래의
937명이 탐색했습니다.
다국어 Java 웹사이트를 개발하는 과정에서 FF에서는 정상적으로 실행되지만 IE에서는 실행되지 않거나, 그 반대의 경우도 정상적으로 실행되는 코드를 많이 발견했습니다. JavaScript에서 IE와 Firefox(Firefox) 간의 비호환성 및 통합 방법은 다음과 같습니다.
if (window.HTMLElement) { HTMLElement.prototype. __defineSetter__("outerHTML" ,function(sHTML) { var r=this.ownerDocument.createRange(); r.setStartBefore(this); var df=r.createContextualFragment(sHTML); this.parentNode.replaceChild(df,this); return sHTML; });
HTMLElement.prototype.__defineGetter__("outerHTML",function() { var attr; var attrs =this.attributes; var str="<" this.tagName.toLowerCase() for (var i=0;i"; return str ">" this.innerHTML "" })
HTMLElement.prototype.__defineGetter__(" canHaveChildren",function( ) { switch(this.tagName.toLowerCase()) { case "area": case "base": case "basefont": case "col": case "frame": case "hr": case "img": case "br": case "input": case " isindex": case "link": case "meta": case "param": return false; } return true; }); }
2. 컬렉션 클래스 개체 문제
설명: IE에서는 () 또는 []를 사용하여 컬렉션 클래스 개체를 얻을 수 있지만, Firefox에서는 []만 사용할 수 있습니다. .해결 방법: 컬렉션 개체를 얻으려면 []를 균일하게 사용하세요.
3. 사용자 정의 속성 문제
설명: IE에서는 다음 메서드를 사용할 수 있습니다. 일반 속성을 얻으려면 getAttribute()를 사용하여 사용자 정의 속성을 얻을 수도 있습니다. Firefox에서는 getAttribute()만 사용하여 사용자 정의 속성을 얻을 수 있습니다.
4.eval("idName") 문제
설명: IE에서는 eval("idName") 또는 getElementById("idName")를 사용하여 HTML을 얻을 수 있습니다. ID가 idName인 객체; Firefox에서는 ID가 idName인 HTML 객체를 얻으려면 getElementById("idName")만 사용할 수 있습니다. 해결 방법: ID가 idName인 HTML 객체를 얻으려면 getElementById("idName")를 균일하게 사용하십시오. .
5 .변수 이름이 HTML 개체의 ID와 동일한 문제
설명: IE에서는 HTML 개체의 ID가 다음과 같을 수 있습니다. 문서의 하위 개체의 변수 이름으로 직접 사용되며 Firefox에서는 사용할 수 없습니다. 변수 이름은 HTML 개체 ID와 동일하며 IE에서는 사용할 수 없습니다. 해결책: document.idName 대신 document.getElementById("idName")를 사용하십시오. 변수를 선언할 때 오류를 줄이기 위해 동일한 HTML 객체 ID를 가진 변수 이름을 사용하지 않는 것이 가장 좋습니다.
6.const 문제
설명: Firefox에서는 const 키워드 또는 var 키워드를 사용하여 IE에서 상수를 정의할 수 있지만 var 키워드만 사용하여 상수를 정의할 수 있습니다. 해결 방법: var 키워드를 균일하게 사용하여 상수를 정의하세요.