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,如this answer中所述,脚本会被下载,但永远不会运行:

<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吗?
您是否尝试将 myDynamicServer.js 附加到 document.getElementsByTagName('BODY')[0] 而不是 document.body?

于 2011-09-29T22:37:33.663 回答