簡體   English   中英

我該如何動態添加 <object> 在IE中用JavaScript標記?

[英]How can I dynamically add an <object> tag with JavaScript in IE?

我必須為Firefox添加一個embed標記,或者使用JavaScript添加Internet Explorer的對象標記,以根據瀏覽器尋址相應的ActiveX /插件。 插件可能會丟失,在這種情況下需要下載。 動態添加的Firefox嵌入標記按預期工作。 Internet Explorer的動態添加對象標記似乎什么都不做。 object標簽需要以下屬性才能正常運行。

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

即使是一般的工作理念或方法也會很好。

謝謝!

我需要做同樣的事情,只需將OBJECT標簽所需的所有HTML放在JavaScript中的字符串中,然后簡單地用OBJECT HTML替換div標簽的innerHTML,它就可以在IE中運行了。

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

這應該工作,它對我來說沒問題 - 我用它來嵌入Windows Media Player。


更新:您可以在頁面加載后通過在頁面的加載事件上運行的事件處理程序運行上面的代碼,也可以響應用戶的單擊。 你唯一需要做的就是有一個空的DIV標簽或其他類型的標簽,它們允許我們通過該元素的innerHTML屬性注入HTML代碼。


更新:顯然你需要比我想象的更多的幫助嗎? 也許這會有所幫助:

讓你的BODY標簽看起來像這樣: <body onload="loadAppropriatePlugin()">

在你的頁面中的某個地方,你想要加載這個東西,一個空的DIV標簽,其id屬性類似於“Foo”或其他什么。

<head>部分的<script>標記中包含這樣的代碼:

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

這有幫助嗎?

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

其他參數也一樣。

兩種方式。

1)只需在任何你想要的地方做一個document.write

<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)編輯標簽的innerHTML屬性。

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

編輯:只是一個注釋,最好不要使用JavaScript來執行此操作,因為啟用JavaScript的人永遠不會看到該對象。 將它放在HTML中會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM