< object>を動的に追加するにはどうすればよいですか? IEでJavaScriptを使用してタグ付けしますか?

StackOverflow https://stackoverflow.com/questions/281246

質問

ブラウザに応じて、Firefoxの埋め込みタグまたはJavaScriptを使用したInternet Explorerのオブジェクトタグを追加して、適切なActiveX /プラグインに対処する必要があります。この場合、プラグインが欠落している可能性があり、ダウンロードする必要があります。 Firefoxに動的に追加されたembedタグは期待どおりに機能します。 Internet Explorerに動的に追加されたオブジェクトタグは、まったく何もしないようです。オブジェクトタグが適切に機能するには、次の属性が必要です。

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

一般的な実用的なアイデアや方法でもいいでしょう。

ありがとう!

役に立ちましたか?

解決

この同じことを行い、OBJECTタグに必要なすべてのHTMLをJavaScriptの文字列に配置し、divタグのinnerHTMLをOBJECT HTMLに置き換えるだけで、IEで正常に動作するようになりました。

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

それは機能するはずです、それは私にとってはうまくいきます-私はそれを使用してWindows Media Playerをページに埋め込みます。


UPDATE:ページの読み込みイベントで実行されるか、ユーザーのクリックに応答してイベントハンドラーでページが読み込まれた後、上記のコードを実行します。必要なのは、空のDIVタグ、またはその要素の innerHTML プロパティを介してHTMLコードを挿入できる他の種類のタグがあることだけです。


更新:どうやらあなたが必要だと思っていた以上の助けが必要ですか?たぶんこれは助けになるでしょう:

BODYタグを次のようにします:&lt; body onload =&quot; loadAppropriatePlugin()&quot;&gt;

ページ内のどこかに、このものをロードしたい場所に、空のDIVタグを配置し、 id 属性を&quot; Foo&quot;のようなものにします。または何でも。

&lt; head&gt; セクションの&lt; script&gt; タグに次のようなコードを入れます:

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:{}')

その他のパラメータについても同様です。

2つの方法。

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帰属
所属していません StackOverflow
scroll top