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>
Was dit nuttig?

Oplossing

Dit is as gevolg van die manier waarop Internet Explorer lekkernye nodes vis-a-vis die DOM.

Aangesien jy dinamies te vervang in elk geval beveel ek jou plaas te skep 'n

waar jy dit nodig het en verander die innerHTML om die HTML vir die item wat jy nodig het nie.

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.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top