Frage

Ich versuche, ein Objekt Element, das aus meiner Webseite zu bekommen mit getElementById (letztlich so kann ich ersetzen Sie es mit einem dynamisch Objektelement erstellt), aber es kehrt null in IE6.

Im folgenden Code, die byId() Funktion gibt null in IE aber ein [object HTMLObjectElement] in Firefox 3 und die lengthOfByTagName() Funktion gibt 0 in IE aber 1 in Firefox.

Gibt es etwas, was ich falsch mache?

<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>
War es hilfreich?

Lösung

Dies ist wegen der Art und Weise IE behandelt Knoten vis-a-vis des DOM.

Da bist du dynamisch sowieso ersetzt empfehle ich Ihnen eine Stelle schaffen

, wo Sie es brauchen, und ändern Sie die innerHTML- der HTML-Code für das Objekt zu sein, die Sie benötigen.

Andere Tipps

Ich habe gerade auf IE 7 getestet und das Verhalten gesehen, wie

Internet Explorer geht nicht davon aus freiem Text in einem <object>-Tag. Mit DebugBar auf Dich Probst prooved dass IE den richtigen DOM-Baum nicht bauen.

Verwenden Sie diesen Code stattdessen

<object type="" id="VideoPlayer">
    <param name="allowScriptAcess" value="always" />
    <param name="allowfullscreen" value="true" />
</object>

Es wird wie erwartet.

In IE6 kann es nicht funktionieren. Für verweisen: https://msdn.microsoft.com/en-us/library/ie/ms536437%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 Magazin

Vorschlagen mit jQuery die meisten der Fälle behandeln

jQuery

var video = $("#VideoPlayer");

alert(video);

Versuchen Sie dies in Ihrer Codierung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top