JavaScript在DIV中动态加载脚本

JavaScript在DIV中动态加载脚本,javascript,dynamic,include,Javascript,Dynamic,Include,我已经动态创建了一个DIV,我希望它包含一个JavaScript链接,它将在上面输出一些东西。JavaScript链接源是绝对的。 显然,这是行不通的: var div = document.createElement('div'); div.id = 'mydiv'; div.innerHTML = "<script type='text/javascript' " + "src='http://mydomain.com/mysc

我已经动态创建了一个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);
在我的脚本文件中,我有一个简单的
警报('Testing…')代码。
问题是它不起作用。脚本包含是在div中键入的(我在Chrome中检查div时看到它),但它不起作用。我没有看到“测试…”消息。

我错过了什么或做错了什么?谢谢

按照我的理解,您的代码不会等到DOM准备就绪

建议使用jquery,它将确保传递给它的脚本仅在DOM就绪后运行

希望这有帮助


<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>
var script=document.createElement('script') setAttribute('type','text/javascript'); setAttribute('src','my.js'); var div=document.createElement('div'); div.id='mydiv'; div.appendChild(脚本); 文件.正文.附件(div);
这个代码对我有用,
但是是的,
document.write()
不适合我

您是否尝试过
document.getElementById('id-of-your-div').innerHTML('Loading…')
?另外,您可以先让div
加载…
,然后脚本可以写入其内部HTML。脚本不需要包含在div中,事实上也不应该包含,因为您可能会根据对div内容所做的操作来覆盖它。请尝试在JS中添加“alert('testing')”。如果在空白页上执行document.write,则应该可以看到输出,但根据标记的不同,文本可能不可见,即使它实际上已写入。您尝试附加javascript的方式应该可以很好地工作。如果您在构建DOM之后执行此操作,您将无法编写
文档。编写
时,即使您确实让脚本运行,也会将整个页面吹走。你通常应该避免使用
文档;直接操纵DOM会更有意义。我尝试了你所有的建议。脚本已链接并正确添加,但未调用“alert('Testing')”函数。Ali,请查看:。显然,我用
innerHTML
替换了
src
属性,因为我不会仅仅为了警报而托管JS,请尝试调整它,并确保脚本的源代码是正确的。好的。在将div附加到主体之后,我将脚本附加到div,现在它可以工作了!但这不是真正的原因/解决方案。在我的代码中,我在将脚本附加到
正文之前附加了脚本。
<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>