웹 프론트엔드 JS 튜토리얼 IE와 Firefox_javascript 기술 간의 JavaScript 비호환 문제에 대한 솔루션 요약

IE와 Firefox_javascript 기술 간의 JavaScript 비호환 문제에 대한 솔루션 요약

May 16, 2016 pm 06:29 PM
firefox ie

1.兼容firefox의 externalHTML,FF中没有outerHtml적 방법.
复代码 代码如下:

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;iattr=attrs[i]
if(attr.specified)
str =" " attr.name ' ="' attr.value '"';
}
if(!this.canHaveChildren)
return str ">"; return str ">" " this.tagName.toLowerCase() ">";
});
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下,可以使사용 설명义属性;Firefox下, getAttribute()를 사용자 정의하는 데 사용합니다. 통합 방법: getAttribute()를 자체적으로 정의합니다.


4.eval("idName")问题
说明:IE下,,可以使용eval("idName")或getElementById("idName")来取得id为idName HTML对象;Firefox에서 getElementById("idName")를 사용하여 idName을 HTML로 설정하세요. 사용 방법: getElementById("idName")는 idName의 HTML 형식을 사용합니다.

5. 变某HTML对象ID는 같은 형식입니다.
설명:IE下,HTML对象적 ID는 문서의 아래쪽에 있습니다.Firefox는 아래에 없습니다. 파이어폭스下,可以使用与HTML对象ID는 같은 의미의 이름;IE下则不能. 설명 방법:使usedocument.getElementById("idName")代替document.idName.以减少错误;재존명명당량时,一律加上var,以避免歧义. 설명 방법:统一使사용 변수는 소문자로 결정됩니다.

7.input.type属性问题 说明:IE下input.type属性为只读;但是Firefox下input.type属性为读写.

8.window.event问题
说明:window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox의 event只能在事件发生的现场사용. 解决방법:
IE:


复代码

代码如下: < ;입력 이름="Button8_1" type="button" value="IE" onclick="javascript:gotoSubmit8_1()"/> ...


IE&Firefox:



复代码

代码如下: < ;입력 이름="Button8_2" type="button" value="IE" onclick="javascript:gotoSubmit8_2(event)"/> ...


9.Event.x 및 event.y 문제
설명: IE에서는 짝수 개체에 x, y 속성이 있지만 Firefox에서는 짝수 개체에 pageX, pageY 속성이 없습니다. 개체에 pageX, pageY 속성이 있지만 x, y 속성이 없습니다.
해결 방법: IE 또는 event.pageX에서 mX(mX = event.x? event.x: event.pageX;)를 사용하여 교체하세요. Firefox에서는

10.event.srcElement 문제
설명: IE에서는 짝수 개체에 srcElement 속성이 있지만 Firefox에서는 대상 속성이 없습니다. target 속성은 있지만 srcElement 속성은 없습니다.
해결책: IE에서는 event.srcElement 대신에 obj(obj = event.srcElement ? event.srcElement : event.target;)를 사용하고, Firefox에서는 event.target을 사용하세요.
11.window .location.href 문제
설명: IE 또는 Firefox2.0.x에서는 window.location 또는 Firefox1.5.x에서는 window.location.href를 사용할 수 있습니다. window.location.
해결책: window.location.href 대신 window.location을 사용하세요.
12. 모달 및 비모달 창 문제
참고: IE에서는 모달이 showModalDialog 및 showModelessDialog 모달 및 비모달 창을 통해 열 수 있습니다.
해결책: window.open(pageURL, 이름, 매개변수)을 직접 사용하여 새 창을 엽니다.
자식 창의 매개변수를 상위 창으로 다시 전달해야 하는 경우 하위 창에서 window.opener를 사용하여 상위 창에 액세스할 수 있습니다. 예: var parWin = window.opener.getElementById; ("Aqing").value = "Aqing";
13.프레임 문제
다음 프레임을 예로 들어 보겠습니다.

(1) 프레임 개체에 액세스합니다.
IE: window.frameId 또는 window.frameName을 사용하여 이 프레임 개체에 액세스합니다.
Firefox: 이 프레임 객체에 액세스하려면 window.frameName을 사용하세요.
또한 IE와 Firefox 모두에서 window.document.getElementById("frameId")를 사용하여 이 프레임 객체에 액세스할 수 있습니다.
(2) 프레임 콘텐츠 전환:
IE와 Firefox 모두에서 사용할 수 있습니다. window.document.getElementById("testFrame").src = "xxx.html" 또는 window.frameName.location = "xxx.html"을 사용하여 프레임 내용을 전환하세요.
프레임의 매개변수를 상위 창으로 다시 전달해야 하는 경우 frme의 parent를 사용하여 상위 창에 액세스할 수 있습니다. 예: parent.document.form1.filename.value="Aqing";
14.body 문제
브라우저와 IE의 본문이 body 태그를 완전히 읽기 전에 Firefox의 본문이 존재합니다.
예:
Firefox:
코드 복사 코드는 다음과 같습니다.





IE


;/ body>




15. 이벤트 대리자 메서드
IE: document.body.onload = //함수 삽입( ) in 이것은
Firefox 이전에 구현되었습니다: document.body.onload = inject(); 표준은 다음과 같습니다: document.body.onload=new Function('inject()');


16. Firefox의 상위 요소와 IE(parentElement)의 차이점

IE: obj.parentElement
firefox: obj.parentNode 해결책: 둘 다이기 때문입니다. firefox와 IE는 DOM을 지원하므로 obj.parentNode를 사용하는 것이 좋습니다.

17.cursor:hand VScursor:pointer

firefox는 손을 지원하지 않지만 즉, 지원합니다. 포인터
해결책: 포인터를 균일하게 사용하세요
18. innerText는 IE에서 정상적으로 작동하지만, innerText는 FireFox에서 작동하지 않습니다.

해결책:


코드 복사
코드는 다음과 같습니다. if(navigator.appName.indexOf("Explorer") > -1 ){ document.getElementById('element').innerText = "내 텍스트";
} else{
document.getElementById('element').textContent = "내 텍스트"
}


19. obj.style.height = imgObj.height와 같은 문은 FireFox에서 유효하지 않습니다.
해결책:
obj.style.height = imgObj.height 'px';

20. IE, Firefox 및 기타 브라우저는 테이블 태그에 대해 다른 작업을 수행합니다. IE에서는 tr을 추가하기 위해 js를 사용하는 경우 innerHTML 할당이 허용되지 않습니다. 작동하지 않습니다. 해결책:

코드 복사 코드는 다음과 같습니다.
//하나 추가 테이블에 빈 행:
var row = otable.insertRow(-1);
var cell = document.createElement("td")
cell.innerHTML = " "
cell. className = " XXXX";
row.appendChild(cell);


21. 패딩 문제 FireFox는 약어를 해석할 수 없습니다. 🎜>는 padding-top:5px; padding-bottom:3px;


22로 변경해야 합니다. 기타 목록
스타일은 다음과 같이 작성해야 합니다: list-style:none;margin:0px;padding:0px; margin 속성은 IE에 유효하고 padding 속성은 FireFox에 유효합니다


23. CSS 투명성
IE: 필터:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60). FF:불투명도:0.6.


24. CSS 둥근 모서리
IE: 둥근 모서리는 지원되지 않습니다. FF: -moz-border-radius:4px 또는 -moz-border-radius-topleft:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz -경계-반경-하단오른쪽:4px;.

25. CSS 이중선 범프 테두리
IE: 테두리:2px 오프셋;. FF: -moz-경계-상단-색상: #d4d0c8 흰색;-moz-경계-왼쪽-색상: #d4d0c8 흰색;-moz-경계-오른쪽-색상:#404040 #808080;-moz-경계- 하단 색상: #404040 #808080;

여기에는 IE와 Firefox 간의 관련 호환성도 있습니다.

IE와 Firefox 간의 비호환성에 대한 솔루션 모음
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu Linux에서 Firefox Snap을 제거하는 방법은 무엇입니까? Ubuntu Linux에서 Firefox Snap을 제거하는 방법은 무엇입니까? Feb 21, 2024 pm 07:00 PM

Ubuntu Linux에서 FirefoxSnap을 제거하려면 다음 단계를 따르세요. 터미널을 열고 Ubuntu 시스템에 관리자로 로그인하세요. FirefoxSnap을 제거하려면 다음 명령을 실행하십시오. sudosnapremovefirefox 관리자 비밀번호를 묻는 메시지가 표시됩니다. 비밀번호를 입력하고 Enter를 눌러 확인하세요. 명령 실행이 완료될 때까지 기다립니다. 완료되면 FirefoxSnap이 완전히 제거됩니다. 이렇게 하면 Snap 패키지 관리자를 통해 설치된 Firefox 버전이 제거됩니다. 다른 수단(예: APT 패키지 관리자)을 통해 다른 버전의 Firefox를 설치한 경우에는 영향을 받지 않습니다. 위의 단계를 거쳐보세요

win11에서 ie11 브라우저를 사용할 수 없으면 어떻게 해야 합니까? (win11은 IE 브라우저를 사용할 수 없습니다) win11에서 ie11 브라우저를 사용할 수 없으면 어떻게 해야 합니까? (win11은 IE 브라우저를 사용할 수 없습니다) Feb 10, 2024 am 10:30 AM

점점 더 많은 사용자들이 win11 시스템을 업그레이드하기 시작하고 있습니다. 사용자마다 사용 습관이 다르기 때문에 여전히 많은 사용자들이 ie11 브라우저를 사용하고 있습니다. 그렇다면 win11 시스템에서 ie 브라우저를 사용할 수 없으면 어떻게 해야 합니까? windows11은 여전히 ​​ie11을 지원하나요? 해결책을 살펴보겠습니다. win11에서 ie11 브라우저를 사용할 수 없는 문제 해결 방법 1. 먼저 시작 메뉴를 마우스 오른쪽 버튼으로 클릭한 후 "명령 프롬프트(관리자)"를 선택하여 엽니다. 2. 연 후 "Netshwinsockreset"을 직접 입력하고 Enter를 눌러 확인합니다. 3. 확인 후 "netshadvfirewallreset&rdqu"를 입력하세요.

Internet Explorer에서 Edge 열기: MS Edge 리디렉션을 중지하는 방법 Internet Explorer에서 Edge 열기: MS Edge 리디렉션을 중지하는 방법 Apr 14, 2023 pm 06:13 PM

Internet Explorer가 오랫동안 인기를 끌지 못했다는 것은 비밀이 아니지만 Windows 11이 출시되면서 현실이 시작되었습니다. 나중에 IE를 대체하는 경우도 있지만 이제 Edge는 Microsoft 최신 운영 체제의 기본 브라우저입니다. 현재로서는 Windows 11에서 Internet Explorer를 계속 활성화할 수 있습니다. 그러나 IE11(최신 버전)은 이미 공식적인 종료 날짜인 2022년 6월 15일을 갖고 있으며 시계는 계속 흐르고 있습니다. 이를 염두에 두고 Internet Explorer가 때때로 Edge를 여는 것을 발견했을 수 있으며 마음에 들지 않을 수도 있습니다. 그럼 왜 이런 일이 일어나는 걸까요? 존재하다

Mozilla Firefox를 제거할 수 있나요? Mozilla Firefox를 제거할 수 있나요? Mar 15, 2023 pm 04:40 PM

Mozilla Firefox는 제거할 수 있습니다. Firefox는 타사 브라우저이므로 필요하지 않은 경우 제거할 수 있습니다. 제거 방법: 1. 시작 메뉴에서 "Windwos 시스템" - "제어판"을 클릭합니다. 2. "제어판" 인터페이스에서 "프로그램 및 기능"을 클릭합니다. 3. 새 인터페이스에서 찾아 두 번 클릭합니다. Firefox 브라우저 아이콘 4. 제거 팝업 창에서 "다음"을 클릭합니다. 5. "제거"를 클릭합니다.

Win10에서 IE를 열 때 Edge로 자동 점프를 취소하는 방법_IE 브라우저 페이지 자동 점프에 대한 솔루션 Win10에서 IE를 열 때 Edge로 자동 점프를 취소하는 방법_IE 브라우저 페이지 자동 점프에 대한 솔루션 Mar 20, 2024 pm 09:21 PM

최근 많은 win10 사용자는 컴퓨터 브라우저를 사용할 때 IE 브라우저가 항상 자동으로 엣지 브라우저로 이동한다는 사실을 발견했습니다. 그러면 win10에서 IE를 열 때 자동 엣지 브라우저로 이동을 끄는 방법은 무엇입니까? 이 사이트에서는 win10에서 IE를 열 때 자동으로 가장자리로 이동하고 닫는 방법을 사용자에게 주의 깊게 소개합니다. 1. 엣지 브라우저에 로그인하고 오른쪽 상단에서...를 클릭하고 드롭다운 설정 옵션을 찾습니다. 2. 설정을 입력한 후 왼쪽 열에서 기본 브라우저를 클릭합니다. 3. 마지막으로 호환성에서 웹사이트가 IE 모드에서 다시 로드되는 것을 허용하지 않는 확인란을 선택하고 IE 브라우저를 다시 시작합니다.

시대의 끝: Internet Explorer 11이 만료되었습니다. 알아야 할 사항은 다음과 같습니다. 시대의 끝: Internet Explorer 11이 만료되었습니다. 알아야 할 사항은 다음과 같습니다. Apr 20, 2023 pm 06:52 PM

2022년 6월 15일은 Microsoft가 IE11(Internet Explorer 11)에 대한 지원을 종료하고 레거시 브라우저 장을 마감하는 날입니다. 회사는 한동안 사용자에게 이 수명 종료 날짜를 상기시키고 Microsoft Edge로의 전환을 계획할 것을 촉구해 왔습니다. Microsoft는 Windows용 최신 기본 웹 브라우저로 IE11을 Windows 8.1에 번들로 제공합니다. 비록 (현재의) Chrome 수준에는 도달하지 못했지만 2014년에는 IE8에 이어 두 번째로 많이 사용된 데스크톱 브라우저였습니다. 물론 20으로

IE 바로가기가 삭제되지 않는 문제 해결 방법 IE 바로가기가 삭제되지 않는 문제 해결 방법 Jan 29, 2024 pm 04:48 PM

삭제할 수 없는 IE 바로가기 해결 방법: 1. 권한 문제, 3. 소프트웨어 충돌, 5. 악성 소프트웨어, 7. IE 재설치, 9. 바로가기의 대상 경로를 확인하세요. 10. 다른 요소를 고려하세요. 11. 전문가에게 문의하세요. 자세한 소개: 1. 권한 문제, 바로가기를 마우스 오른쪽 버튼으로 클릭하고 "보안" 탭에서 "속성"을 선택한 후 바로가기를 삭제할 수 있는 권한이 있는지 확인하세요. 그렇지 않은 경우 관리자로 실행해 보세요. .

IE 가속 기능을 활성화하는 방법 IE 가속 기능을 활성화하는 방법 Jan 30, 2024 am 08:48 AM

IE 가속 기능을 활성화하는 방법은 무엇입니까? IE는 웹 페이지를 열기에는 너무 느립니다. IE에서 하드웨어 가속 모드를 활성화할 수 있습니다. 많은 친구들이 IE 브라우저를 사용할 때 웹 페이지를 여는 속도가 매우 느리고 이는 웹 탐색에도 일정한 영향을 미친다고 보고했습니다. 이런 경우에는 IE 브라우저의 하드웨어 가속 모드를 켜면 됩니다. 관심 있으신 분들은 아래에 IE의 가속 기능을 켜는 방법을 정리했습니다. , 아래를 살펴보세요! IE에서 가속 기능을 활성화하려면 IE 보안 브라우저를 열고 오른쪽 상단에 있는 톱니바퀴 모양의 "설정" 아이콘을 클릭한 후 그림과 같이 "인터넷 옵션"을 선택하여 들어갑니다. 2. 그림과 같이 인터넷 옵션 창 상단에 있는 탭 탐색에서 "고급"을 클릭하세요. 삼.

See all articles