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

Gor*_*ram 5 javascript javascript-events

是否有可能创建类似于:

var jsfile = "code....";
(a=(b=document).createElement('script')).src=jsfile;
b.body.appendChild(a);
Run Code Online (Sandbox Code Playgroud)

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

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

测试示例:

var jsfile = "code....";
(a=(b=document).createElement('script')).text=(jsfile);
b.body.appendChild(a);
Run Code Online (Sandbox Code Playgroud)

Rya*_*nch 7

尝试在脚本元素上设置类型,如下所示(取自无法附加<script>元素):

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);
Run Code Online (Sandbox Code Playgroud)


udi*_*idu 5

是的,您可以,实际上,该src属性仅用于javascript文件路径,如果要呈现代码,则可以使用该innerText属性:

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

document.body.appendChild(script);
Run Code Online (Sandbox Code Playgroud)