可能重复:
Executing <script> elements inserted with .innerHTML
Dynamically Inserting <script> tags into HTML on Page Load
我的意思是如果我做.innerHTML写包含
<script type="text/javascript" src="source.js"></script>
或
<script type="text/javascript"> // embedded code here </script>
嵌入式代码不会运行,也不会链接到代码。它已经“死了”。
有没有办法手动触发它?
答案 0 :(得分:3)
你需要将javascript添加到head标签, 即
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_Dynamically_Insert_Javascript_And_CSS)
旁注: 如果你使用jQuery,你会想写下面的内容:
<script>
[....]
$( "head" ).append( "<script src='myScript.js'></script>" );
[....]
</script>
请注意,这不起作用,因为javascript解析器会看到第一个</script>
并在那里停止解析。