2013-08-12 3 views
2

웹 개발에 익숙하지 않은 학생과 학생으로서 자바에서 다음과 같은 이상한 문제가 발생합니다. IE에서만 (IE9는 정확하지만 아직 IE10은 시도하지 않았습니다) . Firefox에서는 스크립트가 아무런 문제없이 작동합니다.AppendChild (자바 스크립트) 및 인터넷 익스플로러

코드는 다음과 같다 :

IE에서
item = document.createElement('li'); alert("alert1"); 
message = document.createTextNode("Hallo"); alert("alert2"); 
item.appendChild(message); alert("alert3");  

, alert1 및 alert2가 표시하지만, alert3되지 않습니다. 즉, IE9는 위의 세 번째 명령문 (appendChild)에 질식하며 alert3에 도달하지 않습니다. 참으로 이상합니다.

Google을 사용하여 IE의 appendChild에 알려진 문제가 있음을 발견했습니다 (적어도 이전 버전에서는). 그러나 설명 된 문제 나 해결 방법이 위에서 언급 한 간단한 코드와 일치하는 것으로 보이지 않습니다.

미리 제안 해 주셔서 감사합니다.

편집 추가 : 콘솔에 "appendChild 속성이나 메서드를 지원하지 않는 개체"라는 오류 메시지가 표시됩니다.

+0

IE는 어렵고 성가신 수 있도록 설계되었습니다. 대신 innerHTML을 설정해보십시오. – SHANK

+0

간단한 피들 (IE9에서 테스트)로 문제를 재현 할 수 없습니다. http://jsfiddle.net/RnwPG/ – Ian

+0

@Teemu Interesting. 위의'item = docu ...'줄에서'window.item'이 무엇이든 덮어 쓰기를 기대했습니다. – Ian

답변

4

item은 IE의 window 개체의 기본 메서드입니다.

당신은 당신의 변수 이름을 바꾸거나 제대로을 선언 할 수있다

var item = document.createElement('li'); 
+0

예, 훌륭합니다! 명백하게 나는 여기에 감사하다고 말하기로되어 있지 않다. 그러나 나는 그것을 어떻게해서든지 말할 것이다 : 감사. – Holland

+1

@Holland 당신은 건강합니다. 감사는 항상 좋은데, 가장 좋은 것은 대답에 녹색 체크 표시입니다.). – Teemu

+0

그리고 저는 이제 대답을 받아 들였습니다 (아직 여기 새로 왔습니다). – Holland