Wie kann ich dynamisch ein -Tag mit JavaScript im Internet Explorer hinzufügen?

StackOverflow https://stackoverflow.com/questions/281246

Frage

Ich muss entweder ein embed-Tag für Firefox oder ein Objekt-Tag für den Internet Explorer mit JavaScript fügen Sie die entsprechende ActiveX / Plugin je nach Browser zu adressieren. Das Plugin kann nicht fehlen und muss in diesem Fall heruntergeladen zu bekommen. Die dynamisch hinzugefügt embed-Tags für Firefox funktioniert wie erwartet. Das dynamisch hinzugefügt Objekt-Tag für Internet Explorer scheint überhaupt nichts zu tun. Der Objekt-Tag muss die folgenden Attribute richtig funktionieren.

id ="SomeId" classid = "CLSID:{GUID}" codebase = "http://www.MyActicexSource.com/MyCuteActivex.CAB#Version=2,0,0,1"

Auch eine allgemeine Arbeits Idee oder Methode wäre schön.

Danke!

War es hilfreich?

Lösung

Ich brauchte dieses Gleiche zu tun und einfach alle der HTML-Code für das OBJECT-Tag in einem String in JavaScript und einfach ersetzen die Innerhtml eines div-Tag mit dem Objekt HTML und es funktioniert in IE ganz gut benötigt platzieren.

// something akin to this:
document.getElementById(myDivId).innerHTML = "<OBJECT id='foo' classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95'.....etc";

Das sollte funktionieren, tut es ganz gut für mich - ich es verwenden, um Windows Media Player in einer Seite einbetten

.

UPDATE: Sie würden den obigen Code nach dem Laden der Seite über einen Event-Handler, die entweder läuft auf der Seite des Ladeereignis oder vielleicht als Reaktion auf einen Benutzer Klick ausgeführt werden. Das einzige, was Sie tun müssen, ist einen leeren DIV-Tag hat oder eine andere Art von Tag, das uns den HTML-Code über dieses Elements der innerHTML Eigenschaft zu injizieren erlauben würde.


UPDATE: Anscheinend Sie brauchen mehr Hilfe, als ich dachte, Sie brauchen? Vielleicht wird dies helfen:

Haben Sie Ihren BODY-Tag wie folgt aussehen: <body onload="loadAppropriatePlugin()">

auf Ihrer Seite haben Sie irgendwo, wo man dieses Ding will einen leeren DIV-Tag zu laden, mit einem id Attribute von etwas wie „Foo“ oder was auch immer.

Haben Sie Code wie folgt in einem <script> Tag in Ihrem <head> Abschnitt:

function getIEVersion() { // or something like this
   var ua = window.navigator.userAgent;
   var msie = ua.indexOf("MSIE ");
   return ((msie > 0) ? parseInt(ua.substring(msie+5, ua.indexOf(".", msie))) : 0);
}

function loadAppropriatePlugin() {
    if(getIEVersion() != 0) { // this means we are in IE
        document.getElementById("Foo").innerHTML = "<OBJECT id='foo' classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95'.....etc";
    } else {
        // if you want to maybe do the same for FF and load that stuff...
    }
}

Ist diese Hilfe?

Andere Tipps

var object = document.createelement('object')
object.setAttribute('id','name')
object.setAttribute('clssid','CLSID:{}')

Und das gleiche für andere Parameter.

Zwei Wege.

1) einfach eine document.write, wo immer Sie wollen, dass es

<script type="text/javascript">
<!--
   document.write("<object id=\"SomeId\" classid=\"CLSID:{GUID}\" codebase=\"http://www.MyActicexSource.com/MyCuteActivex.CAB#Version=2,0,0,1\"></object>");
-->
</script>

2) Bearbeiten des Innerhtml Eigenschaft des Tags.

<div id="my-div"></div>
<script type="text/javascript">
<!--
   document.getElementById("my-div").innerHTML = "<object id=\"SomeId\" classid=\"CLSID:{GUID}\" codebase=\"http://www.MyActicexSource.com/MyCuteActivex.CAB#Version=2,0,0,1\"></object>";
-->
</script>

EDIT: Nur ein Hinweis, ist es am besten nicht JavaScript verwenden, um dies zu tun, da die Menschen mit JavaScript aktivieren, damit nie das Objekt sehen. Es wäre besser, nur es Platz in Ihrem HTML.

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