Pregunta

Tengo que agregar una etiqueta de incrustación para Firefox o una etiqueta de objeto para Internet Explorer con JavaScript para abordar el ActiveX / Plugin apropiado según el navegador. El complemento podría faltar y debe descargarse en este caso. La etiqueta de inserción agregada dinámicamente para Firefox funciona como se esperaba. La etiqueta de objeto agregada dinámicamente para Internet Explorer parece no hacer nada en absoluto. La etiqueta de objeto necesita los siguientes atributos para funcionar correctamente.

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

Incluso una idea o método de trabajo general sería bueno.

¡Gracias!

¿Fue útil?

Solución

Necesitaba hacer lo mismo y simplemente colocar todo el HTML necesario para la etiqueta OBJECT en una cadena en JavaScript y simplemente reemplazar el innerHTML de una etiqueta div con el HTML OBJECT y funciona perfectamente en IE.

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

Eso debería funcionar, está bien para mí: lo uso para incrustar Windows Media Player en una página.


ACTUALIZACIÓN: ejecutaría el código anterior después de que la página se cargue a través de un controlador de eventos que se ejecute en el evento de carga de la página o tal vez en respuesta al clic de un usuario. Lo único que debe hacer es tener una etiqueta DIV vacía o algún otro tipo de etiqueta que nos permita inyectar el código HTML a través de la propiedad innerHTML de ese elemento.


ACTUALIZACIÓN: ¿Aparentemente necesitas más ayuda de la que pensé que necesitabas? Quizás esto ayude:

Haga que su etiqueta BODY se vea así: < body onload = " loadAppropriatePlugin () " >

Tenga en algún lugar de su página, donde desea que se cargue esta cosa, una etiqueta DIV vacía con un atributo id de algo como " Foo " o lo que sea.

Tenga un código como este en una etiqueta < script > en su sección < 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...
    }
}

¿Eso ayuda?

Otros consejos

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

Y lo mismo para otros parámetros.

Dos formas.

1) Simplemente haz un documento. Escribe donde quieras

<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) Editar la propiedad innerHTML de una etiqueta.

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

EDITAR: Solo una nota, es mejor no usar JavaScript para hacer esto, ya que las personas con JavaScript habilitado nunca verán el objeto. Sería mejor simplemente colocarlo en su HTML.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top