Domanda

Devo aggiungere un tag di incorporamento per Firefox o un tag di oggetto per Internet Explorer con JavaScript per indirizzare il plug-in ActiveX / appropriato in base al browser. Il plug-in potrebbe mancare e in questo caso deve essere scaricato. Il tag di incorporamento aggiunto in modo dinamico per Firefox funziona come previsto. Il tag oggetto aggiunto dinamicamente per Internet Explorer sembra non fare nulla. Il tag oggetto richiede i seguenti attributi per funzionare correttamente.

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

Anche un'idea o un metodo di lavoro generale sarebbe carino.

Grazie!

È stato utile?

Soluzione

Avevo bisogno di fare la stessa cosa e semplicemente inserire tutto l'HTML necessario per il tag OBJECT in una stringa in JavaScript e sostituire semplicemente l'HTML interno di un tag div con il codice HTML OBJECT e funziona perfettamente con IE.

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

Dovrebbe funzionare, per me va bene, lo uso per incorporare Windows Media Player in una pagina.


AGGIORNAMENTO: eseguirai il codice sopra dopo il caricamento della pagina tramite un gestore eventi che viene eseguito sull'evento di caricamento della pagina o forse in risposta al clic di un utente. L'unica cosa che devi fare è avere un tag DIV vuoto o qualche altro tipo di tag che ci consenta di iniettare il codice HTML tramite la proprietà innerHTML di quell'elemento.


AGGIORNAMENTO: Apparentemente hai bisogno di più aiuto di quanto pensassi avessi bisogno? Forse questo aiuterà:

Fai apparire il tuo tag BODY in questo modo: < body onload = " loadAppropriatePlugin () " >

Avere da qualche parte nella tua pagina, dove vuoi caricare questa cosa, un tag DIV vuoto con un attributo id simile a " Foo " o qualsiasi altra cosa.

Inserisci un codice come questo in un tag < script > nella sezione < head > :

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

Aiuta?

Altri suggerimenti

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

E lo stesso per altri parametri.

Due modi.

1) Basta fare un document.write dove mai lo desideri

<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) Modifica la proprietà innerHTML di un tag.

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

MODIFICA: Solo una nota, è meglio non usare JavaScript per farlo, poiché le persone con JavaScript abilitato non vedranno mai l'oggetto. Sarebbe meglio semplicemente inserirlo nel tuo HTML.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top