Pergunta

Eu tenho que adicionar uma etiqueta incorporada para o Firefox ou uma tag de objeto para o Internet Explorer com JavaScript para abordar o ActiveX / plug -in apropriado, dependendo do navegador. O plug -in pode estar faltando e precisa ser baixado neste caso. A etiqueta incorporada adicionada dinamicamente para o Firefox funciona conforme o esperado. A tag de objeto adicionada dinamicamente para o Internet Explorer parece não fazer nada. A tag de objeto precisa dos seguintes atributos para funcionar corretamente.

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

Até uma ideia ou método geral de trabalho seria bom.

Obrigado!

Foi útil?

Solução

Eu precisava fazer a mesma coisa e simplesmente colocar todo o HTML necessário para a tag de objeto em uma string em JavaScript e simplesmente substituir o iNnerHTML de uma tag div pelo objeto html e ele funciona no IE bem.

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

Isso deve funcionar, tudo bem para mim - eu o uso para incorporar o Windows Media Player em uma página.


ATUALIZAÇÃO: Você executaria o código acima depois que a página é carregada por meio de um manipulador de eventos que é executado no evento de carga da página ou talvez em resposta ao clique do usuário. A única coisa que você precisa fazer é ter uma tag div emízas ou algum outro tipo de tag que nos permitiria injetar o código HTML por meio do elemento desse elemento innerHTML propriedade.


ATUALIZAÇÃO: Aparentemente, você precisa de mais ajuda do que eu pensava que precisava? Talvez isso ajude:

Faça com que sua etiqueta corporal seja assim: <body onload="loadAppropriatePlugin()">

Tem em algum lugar da sua página, onde você deseja que essa coisa carregue, uma tag divadida com um id atributo de algo como "foo" ou qualquer outra coisa.

Tem código como este em um <script> tag em seu <head> seção:

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

Isso ajuda?

Outras dicas

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

E o mesmo para outros parâmetros.

Dois caminhos.

1) Basta fazer um documento.Write onde você quiser

<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) Edite a propriedade InnerHTML de uma 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>

EDITAR: Apenas uma nota, é melhor não usar o JavaScript para fazer isso, pois as pessoas com JavaScript habilitadas nunca verão o objeto. Seria melhor apenas colocá -lo em seu HTML.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top