• ベストアンサー

innerHTMLに追記した場合のjs動作

WSHなどでIEオブジェクトを用いて、 documnet.innerHTML += などでHTMLを動的に生成した場合、 <script>内に記述したものが動作しません。 これはどの様にするべきでしょうか? ※別途HTMLを作成せずに動的なhtml生成での話になります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

var ie = WScript.CreateObject("InternetExplorer.Application"); ie.Visible = true; ie.Navigate( "about:blank" ); while (ie.Busy == true || ie.readyState != 4) { WScript.Sleep(100); } ie.document.body.innerHTML = "<span>test</span>"; var element = ie.document.createElement("script"); element.textContent = "alert('test');"; ie.document.body.appendChild(element); 上記の内容で、test.js というファイル名で保存してダブルクリックしたらalertが実行されてダイアログが出ましたよ。

popepon
質問者

お礼

具体例有難うございました。 <script>含めinnerHTMLで直接挿入していたのがダメだった様です。 参考になりました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

element = document.createElement("script"); element.textContent = "alert('test');"; document.body.appendChild(element); って感じでどうかしら?試してないけど。

popepon
質問者

お礼

ご回答ありがとうございます。 試しましたが動作しませんでした。 そもそもwindow.onloadすら動作しないので別のアプローチが必要なのだと思います。 アプリケーションオブジェクトでブランクページを生成してinnerHTMLで直接コードを挿入する感じです。

すると、全ての回答が全文表示されます。

関連するQ&A