3

ページに動的に追加される JavaScript ファイルがあります。document.write を使用すると、正常に動作します。

<html>
<head></head>
<body>
    <script type="text/javascript">
          var src = 'myDynamicScript.js';
          document.write('<scr' + 'ipt type="text/javascript" src="' + src + '"></scr' + 'ipt>');
    </script>
</body>
</html>

ただし、この回答で説明されているように、appendChild を使用すると、スクリプトはダウンロードされますが、実行されません。

<html>
<head></head>
<body>
    <script type="text/javascript">
          var src = 'myDynamicScript.js';
          var script = document.createElement("script");
          script.type  = "text/javascript";
          script.src   = src;
          document.body.appendChild(script);
    </script>
</body>
</html>

ここ (書き込み)ここ (追加)に簡単なセットアップ例があります。それが実行されることを期待する必要がありますか、それとも既知の動作ですか? そうすべきなら、なぜそうではないのですか?

4

2 に答える 2

3

スクリプトは正常に実行されていますが、スクリプトからはできませんdocument.write。アラートなどを使用してテストし、document.write完全に使用しないでください。

于 2011-09-29T21:35:29.723 に答える
0

あなたの例は、Safariで機能します。ここにいくつかの質問があります:

どのブラウザをテストしていますか? (IE で問題が発生していると思います。) index.html をブラウザにドラッグするだけでなく、サーバーからこれを試していますか?
myDynamicServer.js をブロックしている可能性のあるページで他に何が実行されていますか?
何かがwindow.onloadを乗っ取った?
document.body ではなく、document.getElementsByTagName('BODY')[0] に myDynamicServer.js を追加しようとしましたか?

于 2011-09-29T22:37:33.663 に答える