document.createElement('script')。src = variable?可能吗?

时间:2012-10-09 17:25:47

标签: javascript javascript-events

是否可以创建类似于:

的内容
var jsfile = "code....";
(a=(b=document).createElement('script')).src=jsfile;
b.body.appendChild(a);

其中'jsfile'就像一个外部的js文件,但在我们的例子中它将是一个变量?

我的所有测试都失败了,我成功获得了'jsfile'的输入,但是如果obj中有函数(记得我希望它像外部js文件那样执行),那么它们就没有执行。

测试示例:

var jsfile = "code....";
(a=(b=document).createElement('script')).text=(jsfile);
b.body.appendChild(a);

2 个答案:

答案 0 :(得分:6)

尝试在脚本元素上设置类型,如下所示(取自Can't append <script> element):

var script   = document.createElement("script");
script.type  = "text/javascript";
script.src   = "path/to/your/javascript.js";    // use this for linked script
script.text  = "alert('voila!');"               // use this for inline script
document.body.appendChild(script);

答案 1 :(得分:4)

是的,实际上,src属性只能用于javascript文件路径,如果要渲染代码,可以使用innerText属性:

var code = 'alert("working!")';
var script = document.createElement('script');
script.innerText = code;

document.body.appendChild(script);