关于javascript:如何运行使用innerHTML添加到页面的脚本?

How can I run script that was added to the page with innerHTML?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Executing elements inserted with .innerHTML
Dynamically Inserting tags into HTML on Page Load

我的意思是如果我这样做。innerhtml写的

1
<script type="text/javascript" src="source.js">

1
<script type="text/javascript"> // embedded code here

嵌入的代码不运行,链接到代码的代码也不运行。它是"死"的。

是否有手动触发的方法?


您需要将javascript添加到head标签中,即

1
2
3
4
5
var head = document.getElementsByTagName("head")[0];        
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://www.somedomain.com/somescript.js';
head.appendChild(newScript);

(这是一件很常见的事情,但我从这里复制了代码:http://www.hunlock.com/blogs/howto_dynamic_insert_javascript_and_css)

侧记:如果使用jquery,您将尝试编写以下内容:

1
2
3
    [....]
    $("head" ).append("<script src='myScript.js'>" );
    [....]

注意,这不起作用,因为JavaScript解析器将看到第一个,并停止解析。