ie6 getElementByid ()가있는 객체 요소를 찾을 수 없습니까?
-
22-07-2019 - |
문제
getElementById를 사용하여 웹 페이지에서 객체 요소를 얻으려고 노력하고 있습니다 (궁극적으로 동적으로 생성 된 객체 요소로 교체 할 수 있음). null
IE6에서.
다음 코드에서 byId()
기능이 반환됩니다 null
IE에서는 [object HTMLObjectElement]
Firefox 3과 lengthOfByTagName()
기능이 반환됩니다 0
즉,하지만 1
Firefox에서.
내가 잘못하고있는 일이 있습니까?
<html>
<head>
<title>IE doesn't see Object element?</title>
<script type="text/javascript">
function byId()
{
var video = document.getElementById("VideoPlayer");
alert(video);
}
function lengthOfByTagName()
{
var length = document.getElementsByTagName("object").length;
alert(length);
}
</script>
</head>
<body>
<object type="" id="VideoPlayer">
<param name="allowScriptAcess" value="always" />
<param name="allowfullscreen" value="true" />
VideoPlayer element
</object>
<br>
<br>
<a href="#" onclick="javascript:byId()">getElementById("VideoPlayer")</a>
<br>
<a href="#" onclick="javascript:lengthOfByTagName()">getElementsByTagName("object").length</a>
</body>
</html>
해결책
이것은 IE가 대하는 방식 때문입니다u003Cobject> DOM에 대한 노드.
어쨌든 동적으로 교체하므로 대신u003Cdiv> 필요한 경우, InnerHTML을 변경하여 필요한 개체의 HTML로 변경하십시오.
다른 팁
방금 IE 7에서 테스트했고 설명 된대로 동작을 보았습니다.
Internet Explorer는 무료 텍스트를 기대하지 않습니다 <object>
꼬리표. Debugbar를 사용하여 IE가 올바른 DOM 트리를 구축하지 않도록 Proed 샘플을 사용합니다.
대신이 코드를 사용하십시오
<object type="" id="VideoPlayer">
<param name="allowScriptAcess" value="always" />
<param name="allowfullscreen" value="true" />
</object>
예상대로 작동합니다.
IE6에서는 작동하지 않을 수 있습니다. 참조 : https://msdn.microsoft.com/en-us/library/ie/ms536437%28v=vs.85%29.aspx?f=255&mspperror=-2147217396잡지
사용 제안 jQuery 대부분의 경우를 처리합니다
jQuery
var video = $("#VideoPlayer");
alert(video);
코딩에서 이것을 시도하십시오.
제휴하지 않습니다 StackOverflow