> 웹 프론트엔드 > JS 튜토리얼 > Firefox 및 IE 호환성 문제 및 Solutions_javascript 기술 요약

Firefox 및 IE 호환성 문제 및 Solutions_javascript 기술 요약

WBOY
풀어 주다: 2016-05-16 17:20:44
원래의
937명이 탐색했습니다.

다국어 Java 웹사이트를 개발하는 과정에서 FF에서는 정상적으로 실행되지만 IE에서는 실행되지 않거나, 그 반대의 경우도 정상적으로 실행되는 코드를 많이 발견했습니다. JavaScript에서 IE와 Firefox(Firefox) 간의 비호환성 및 통합 방법은 다음과 같습니다.

1. Firefox의 externalHTML과 호환되며, FF에는 externalHtml 메서드가 없습니다.

코드 복사 코드는 다음과 같습니다.

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 키워드를 균일하게 사용하여 상수를 정의하세요.

7.input.type 속성 문제

설명: IE에서는 input.type 속성이 읽기 전용입니다. ; 그러나 Firefox의 input.type 속성은

8.window.event 문제

설명: window.event는 IE에서만 실행할 수 있습니다. Firefox Firefox의 이벤트는 이벤트가 발생한 사이트에서만 사용할 수 있기 때문입니다. 해결책:

IE:

...

IE&Firefox:

...



인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿