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

时间:2012-05-14 20:42:23

标签: javascript

  

可能重复:
  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>

嵌入式代码不会运行,也不会链接到代码。它已经“死了”。

有没有办法手动触发它?

1 个答案:

答案 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>并在那里停止解析。