【问题标题】:document.createElement('script').src = variable? is it possible?document.createElement('script').src = 变量?是否可以?
【发布时间】:2012-10-09 17:25:46
【问题描述】:

是否可以创建类似于:

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);

【问题讨论】:

标签: javascript javascript-events


【解决方案1】:

尝试在脚本元素上设置类型,如下所示(取自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);

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-06
      • 2011-03-15
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      • 2011-12-23
      相关资源
      最近更新 更多