IE6 kan nie vind Object element met getElementById ()?
-
22-07-2019 - |
Vra
Ek probeer om 'n voorwerp element te kry van my webblad met behulp van getElementById (uiteindelik so kan ek dit vervang met 'n dinamiese geskep voorwerp element), maar dit is die terugkeer van null
in IE6.
In die volgende kode, die byId()
funksie gee terug null
in IE, maar 'n [object HTMLObjectElement]
in Firefox 3 en die lengthOfByTagName()
funksie gee terug 0
in IE, maar 1
in Firefox.
Is daar iets wat ek verkeerd doen?
<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>
Oplossing
Dit is as gevolg van die manier waarop Internet Explorer lekkernye
Aangesien jy dinamies te vervang in elk geval beveel ek jou plaas te skep 'n
Ander wenke
Ek het net getoets op Internet Explorer 7 en gesien die gedrag soos beskryf
Internet Explorer nie vrye teks in 'n <object>
tag verwag. Die gebruik van Debugbar op jou monster prooved dat IE die reg DOM boom nie bou.
Gebruik hierdie kode in plaas
<object type="" id="VideoPlayer">
<param name="allowScriptAcess" value="always" />
<param name="allowfullscreen" value="true" />
</object>
Dit sal werk as wat verwag is.
In IE6, dit kan nie werk nie. Vir verwys: https://msdn.microsoft.com/en-us/library/ie/ms536437%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 tydskrif
Stel die gebruik van jQuery om die meeste van die gevalle hanteer
jQuery
var video = $("#VideoPlayer");
alert(video);
Probeer hierdie in jou kodering.