1. document.form.item 문제
(1) 기존 문제:
기존 코드에 document.formName.item("itemName")과 같은 명령문이 많아 MF에서 실행할 수 없는 명령문이 많이 있습니다
( 2) 해결 방법:
대신 document.formName.elements["elementName"] 사용
(3) 다른
에 대해서는 2
2. 컬렉션 클래스 개체 문제
를 참조하세요.(1) 기존 문제:
기존 코드의 많은 컬렉션 클래스 개체에 액세스할 때 ()를 사용하지만 IE에서는 이를 허용하지 않습니다.
(2) 해결 방법:
아래 첨자 연산으로 []를 대신 사용하세요. 예: document.forms("formName")은 document.forms["formName"]으로 변경됩니다.
또 다른 예: document.getElementsByName("inputName")(1)이 document.getElementsByName("inputName")으로 변경됨[1]
(3) 기타
3. )기존 문제점 :
window.event를 MF에서 사용할 수 없습니다
(2)해결책 :
MF의 이벤트는 이벤트가 발생한 현장에서만 사용할 수 있으며, 당분간 이 문제는 해결이 불가능합니다. 존재. 다음과 같이 수정할 수 있습니다.
원본 코드(IE에서 실행 가능):
...
새 코드(IE에서 실행 가능) 및 MF 실행):
...
또한 새 코드의 첫 번째 줄이 변경되지 않으면 이전 코드와 동일합니다. 이전 코드(즉, gotoSubmit 호출은 매개변수를 제공하지 않음)는 여전히 IE에서만 실행되지만 오류는 발생하지 않습니다. 따라서 이 솔루션의 tpl 부분은 여전히 이전 코드와 호환됩니다.
4. HTML 객체의 ID를 객체 이름으로 사용하는 문제
(1) 기존 문제
IE에서는 HTML 객체의 ID를 하위 객체 변수 이름으로 직접 사용할 수 있습니다. 문서. MF에서는 불가능합니다.
(2) 해결 방법
객체 변수로 idName 대신 getElementById("idName")를 사용하세요.
5. idName 문자열을 사용하여 객체를 얻을 때 발생하는 문제
(1) 기존 문제
IE에서는 eval(idName)을 사용하여 idName의 HTML 객체를 얻을 수 있지만 MF에서는 얻을 수 없습니다.
(2) 해결책
eval(idName) 대신 getElementById(idName)를 사용하세요.
6. 변수 이름이 HTML 객체 ID와 동일하다는 문제
(1) 기존 문제
MF에서는 객체 ID를 HTML 객체 이름으로 사용하지 않기 때문에 다음과 같은 문제가 발생할 수 있습니다. HTML 객체 ID와 동일한 변수 이름을 사용하십시오. IE에서는 변수 이름을 사용할 수 없습니다.
(2) 해결 방법
변수 선언 시 항상 var를 추가하여 모호함을 피하도록 하여 IE에서도 정상적으로 실행되도록 하세요.
또한 오류를 줄이기 위해 HTML 개체 ID와 동일한 변수 이름을 사용하지 않는 것이 가장 좋습니다.
(3) 기타
질문 4 참조
7. Event.x 및 event.y 문제
(1) 기존 문제
IE에서 이벤트 개체에는 x, y 속성이 있지만 MF에서 사용 가능합니다.
(2) 솔루션
MF에서는 event.x에 해당하는 것이 event.pageX입니다. 그러나 IE에는 event.pageX가 존재하지 않습니다.
그래서 event.x 대신 event.clientX가 사용됩니다. 이 변수는 IE에도 존재합니다.
event.clientX와 event.pageX는 미묘한 차이가 있지만(전체 페이지에 스크롤 막대가 있는 경우) 대부분의 경우 동일합니다.
완전히 동일해지려면 조금 더 문제가 발생할 수 있습니다.
mX = event.x ? event.x : event.pageX
그런 다음 event.x 대신 mX를 사용하세요.
(3) 기타<script> <BR>function gotoSubmit() { <BR>... <BR>alert(window.event); // use window.event <BR>... <BR>} <BR></script> event.layerX는 IE와 MF 모두에 존재하며 구체적인 의미에 차이가 있는지는 아직 테스트되지 않았습니다.
8. 프레임에 대하여
(1) 기존 문제
IE에서는 window.testFrame을 사용하여 프레임을 얻을 수 있지만 MF에서는 얻을 수 없습니다
(2) 해결 방법
프레임 사용 mf와 ie의 주요 차이점은 다음과 같습니다.
프레임 태그에 다음 속성이 기록되면
ie는 id 또는 이름을 통해 이 프레임에 해당하는 창 개체에 액세스할 수 있습니다.
mf는 이름을 통해서만 이 프레임에 해당하는 window 객체에 접근할 수 있습니다
예를 들어 위의 프레임 태그를 상단 창 내부의 htm에 쓰면 다음과 같이 접근할 수 있습니다
예: window .top.frameId 또는 window.top .frameName을 사용하여 이 창 개체에 액세스
mf: window.top.frameName을 사용하여 이 창 개체에 액세스할 수 있습니다
또한 window.top.document.getElementById("frameId ")는 mf와 ie 모두에서 사용할 수 있습니다. 프레임 태그
에 액세스하고 window.top.document.getElementById("testFrame").src = 'xx.htm'을 통해 프레임 내용
을 전환하려면 또는 window.top.frameName.location = 'xx.htm'을 통해 프레임의 내용을 전환합니다
프레임과 창에 대한 설명은 bbs
의 '창과 프레임' 기사를 참조하세요. /test/js/test_frame/ 디렉토리
--- -adun 2004.12.09 수정
9. mf에서는 정의한 속성을 getAttribute()로 얻어야 합니다
10. mf의 parentElement parement.children은
parentNode parentNode.childNodes
childNodes를 사용합니다. IE와 MF에서는 아래 첨자의 의미가 다릅니다. MF는 DOM 사양을 사용하며 빈 텍스트 노드가 childNodes에 삽입됩니다.
일반적으로 이 문제는 node.getElementsByTagName()을 통해 피할 수 있습니다.
html에 노드가 누락된 경우 IE와 MF는 parentNode를 다르게 해석합니다. 예를 들어