JavaScript在DIV中动态加载脚本

时间:2012-06-04 16:48:02

标签: javascript dynamic include

我已经动态创建了一个DIV,我希望它包含一个JavaScript链接,它会输出一些东西。 JavaScript链接源是绝对的。 显然,这不起作用:

var div = document.createElement('div');
    div.id = 'mydiv';
    div.innerHTML = "<script type='text/javascript' " + 
                    "src='http://mydomain.com/myscript.js'></script>";
    document.body.appendChild(div);

所以我尝试了这个

var script = document.createElement('script')
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', 'http://mydomain.com/myscript.js');

var div = document.createElement('div');
    div.id = 'mydiv';

    div.appendChild(script);
    document.body.appendChild(div);

在我的脚本文件中,我有一个简单的alert('Testing...');代码。 问题是它不起作用。脚本包含在div中输入(我在Chrome中检查DIV时看到它),但它不起作用。我没有看到&#39;测试...&#39; 消息。 我错过了什么或做错了什么?谢谢!

2 个答案:

答案 0 :(得分:1)

我理解它的方式,你的代码不会等到DOM准备就绪。

建议使用jquery的ready,这将确保传递给它的脚本仅在DOM准备好后运行

希望这有帮助

答案 1 :(得分:0)

<html>
<head>  
</head> 
<body>  
<script type='text/javascript'> 
    var script = document.createElement('script')
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', 'my.js');

    var div = document.createElement('div');
    div.id = 'mydiv';

    div.appendChild(script);
    document.body.appendChild(div); 
</script> 
</body>
</html>

此代码适用于我, 但是,document.write()对我不起作用。