Question

Je dois ajouter soit une balise incorporée pour Firefox, soit une balise d'objet pour Internet Explorer avec JavaScript pour adresser l'actif / plug-in approprié en fonction du navigateur. Le plugin pourrait être manquant et doit être téléchargé dans ce cas. La balise incorporée ajoutée de manière dynamique pour Firefox fonctionne comme prévu. La balise d'objet ajoutée dynamiquement pour Internet Explorer semble ne rien faire du tout. La balise d'objet a besoin des attributs suivants pour fonctionner correctement.

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

Même une idée de travail générale ou une méthode serait bien.

Merci!

Était-ce utile?

La solution

Je devais faire la même chose et placer simplement tout le code HTML nécessaire à la balise OBJECT dans une chaîne en JavaScript et simplement remplacer le innerHTML d'une balise div par la balise OBJECT HTML. Cela fonctionnait parfaitement dans IE.

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

Cela devrait fonctionner, cela me convient parfaitement. Je l'utilise pour incorporer Windows Media Player dans une page.

UPDATE: vous exécuteriez le code ci-dessus après le chargement de la page via un gestionnaire d'événements qui s'exécute sur l'événement de chargement de la page ou peut-être en réponse au clic d'un utilisateur. La seule chose que vous devez faire est d’avoir une balise DIV vide ou un autre type de balise qui nous permettrait d’injecter le code HTML via la propriété innerHTML de cet élément.

MISE À JOUR: Apparemment, vous avez besoin de plus d'aide que je ne le pensais? Cela aidera peut-être:

Faites en sorte que votre balise BODY ressemble à ceci: < body onload = & load; AppleAppropriatePlugin () " >

Avez-vous quelque part dans votre page, où vous voulez charger cette chose, une balise DIV vide avec un attribut id de quelque chose comme "Foo" ou peu importe.

Code de ce type dans une balise < script > dans votre section < tête > :

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...
    }
}

Est-ce que cela vous aide?

Autres conseils

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

Et la même chose pour les autres paramètres.

Deux façons.

1) Créez simplement un document.écrivez où vous le voulez

<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) Modifiez la propriété innerHTML d'une balise.

<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>

MODIFIER: Il suffit de noter que pour ce faire, il est préférable de ne pas utiliser JavaScript, car les personnes ayant JavaScript activé ne verront jamais l'objet. Il serait préférable de le placer simplement dans votre code HTML.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top