是否可以创建类似于:
的内容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);
答案 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);