5

我正在使用 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);

感谢您的关注。

4

3 回答 3

4
   // 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)();
于 2012-11-14T21:53:51.210 回答
3
var scriptTag = document.createElement("script");
scriptTag.setAttribute("type", "text/javascript");

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

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

现场演示

于 2012-11-14T21:53:01.003 回答
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 );
});​
于 2012-11-14T22:10:11.623 回答