2011-10-31 4 views
0

새로 만든 div를 body 요소 onload에 추가하는 스크립트가 있습니다. 응용 프로그램 전체에서 해당 div에 대한 참조를 유지해야하므로 내 주요 전역 개체에 저장합니다.개체 속성으로 만든 요소 추가

var oMyObj = {}; 

window.onload = function() { 
    oMyObj.eDiv = document.createElement("div"); 
    document.getElementsByTagName("body")[0].appendChild(oMyObj.eDiv); 
}; 

특히 놀라운 것은 없습니다. 어쨌든 IE9에서 테스트하기 전까지는 아무 문제가 없었습니다. 모든 순간 갑자기 "오브젝트 콜이 null/invalid"로 번역 된 것과 같은 오류 메시지가 나타납니다 (현재 일본에서 일하고 있습니다). 정확한 영어 버전의 오류 메시지가 무엇인지 확실하지 않습니다.

어쨌든 RealPlayer DivX 플러그인으로 인해 (http://d.hatena.ne.jp/wang-zhi/20110503/1304361114 - 죄송합니다, 일본어로) 검색했습니다. 플러그인을 사용 중지 한 후 제대로 작동했습니다. 메타 태그를 사용하여 IE9를 IE7로 강제 실행하는 경우에도 정상적으로 작동합니다. 따라서 큰 문제는 아닙니다. 하지만 IE9에서 IE9로 작동하도록하기 위해 노력하고있는 "올바른"방법이 있는지 알고 싶습니다. 나는 지금 내가하고있는 일이 내가하고있는 일이 아니라고 가정 할 수있다.

아이디어가 있으십니까?

+0

아무 문제가 없습니다. – Pointy

+0

oMyObj.eDiv가 onload 전에 참조 될 수 있습니까? 오류가 발생할 때 oMyObj의 값은 무엇입니까? 즉 : oMyObj 또는 oMyObj.eDiv가 null입니까? –

+0

'var oMyObj'와'oMyObj'를'window.oMyObj'로 변경하면 결과가 동일합니까? 그렇게하면 실제로 그것이 글로벌인지 확인할 수 있습니다. – bennedich

답변

0

좋아요. 음, 문제가되는 플러그인 인 DivX (RealPlayer가 아닌, 왜 내가 그들을 섞은 것일까?)라는 확인을 받았습니다. 플러그인은 appendChild를 포함하여 핵심 DOM 기능 중 일부를 덮어 씁니다.이 기능은 제게 정신 나간 것처럼 보입니다. DivX acknowledged 버그는 다음 업데이트에서 수정 될 것입니다. 예, 그렇습니다.

관련 문제