< object>を動的に追加するにはどうすればよいですか? IEでJavaScriptを使用してタグ付けしますか?
-
07-07-2019 - |
質問
ブラウザに応じて、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に配置することをお勧めします。