如何从字符串而不是文件向头标记添加动态javascript?

时间:2012-11-14 21:51:43

标签: javascript

我正在使用Javascript生成其他自定义javascript,然后将其添加到HEAD标记中。下面的代码可以很好地添加一个javascript文件,但是如果脚本是刚刚生成的变量呢?

var scriptTag = document.createElement("script");
scriptTag.setAttribute("type", "text/javascript");
scriptTag.setAttribute("src", "myfile.js");
document.getElementsByTagName("head")[0].appendChild(scriptTag);

感谢您的关注。

3 个答案:

答案 0 :(得分:3)

var scriptTag = document.createElement("script");
scriptTag.setAttribute("type", "text/javascript");

scriptTag.innerHTML = "What you want here";///....

document.getElementsByTagName("head")[0].appendChild(scriptTag);

Live DEMO

答案 1 :(得分:3)

   // script text
var txt = "alert('foo');";

var scriptTag = document.createElement("script");
scriptTag.setAttribute("type", "text/javascript");

   // append it in a text node
scriptTag.appendChild(document.createTextNode(txt));
document.getElementsByTagName("head")[0].appendChild(scriptTag);

FWIW,您不需要脚本标记。您可以改用Function构造函数。

var txt = "alert('foo');";

Function(txt)();

答案 2 :(得分:0)

两个答案看起来都很好,特别是来自@gdoron的答案。

我写了一个简单的例子,以防你想在jquery中做同样的事情:http://jsfiddle.net/bitoiu/EKpGg/

段:

$(function(){

    var script = document.createElement( 'script' );
    script.type = 'text/javascript';
    // script.url = 'some valid url';
    $('head').append( script );
});​