【问题标题】:how to create script tag with a src from a var?如何使用 var 的 src 创建脚本标签?
【发布时间】:2023-04-02 19:22:01
【问题描述】:

嗨,我需要从这个 var 添加创建脚本标签:

var m ="<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js'></script>"

并且我需要它工作,例如这个 jquery 链接我需要它工作,所以如果我编写任何 jquery 代码它将工作。 我尝试了很多代码,例如:

m = m.replace(/<script src="|<script src='/g,"");
m = m.replace(/"><\/script>|'><\/script>/g,"");
var script = document.createElement('script');
script.src = m;
document.getElementsByTagName('head')[0].appendChild(script);

但没有任何效果。

这是完整的代码: index.html code.html

【问题讨论】:

  • script.src = $(m).attr('src')
  • 有没有不使用jquery的方法?
  • var d = document.createElement('div'); d.innerHTML = m; d.childNodes[0].src; 当然,此时您可以将d.childNodes[0] 附加到头部。
  • 基本上,使用正则表达式解析 html 几乎总是一个坏主意。在这种情况下,您试图从 html 字符串中去除属性值,因此操作过程应该是解析 html 字符串,然后获取属性值。但是,由于解析 html 字符串会为您提供要尝试附加的节点,因此您可以跳过一个步骤并仅附加该节点而不是创建另一个节点。

标签: javascript jquery html node.js createelement


【解决方案1】:

试试

var m ="<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js'></script>";
document.getElementsByTagName('head')[0].innerHTML = m;

请注意,在 Internet Explorer 中插入某些标签时,这将不起作用。

【讨论】:

  • 这有帮助吗?不是?有问题吗?告诉我。
【解决方案2】:

您的正则表达式定义不明确..您可以执行以下操作:

m = m.match(/'.+'/g).map(function(s){return(s.substring(1,s.length-1))});

这条线是做什么的?

简单:它会在单引号之间使用所有字符 (.+)

m 的结果将是一个包含所有匹配项的数组


在您现有的代码之后:

var script = document.createElement('script');
script.src = m[0];
document.getElementsByTagName('head')[0].appendChild(script);

你应该有一个检查你添加的库的功能:

function isOk (callback) {
    if (window.$) callback($);
    else window.setTimeout(function(){isOk(callback);}, 100);
};

然后你就可以使用它了:

isOk(function($) {
    $("body").html(m[0]);
});

Check live here.

【讨论】:

  • 但它也会使用单引号
  • 这个代码怎么样 var script = document.createElement('script');脚本.src = m; document.getElementsByTagName('head')[0].appendChild(script);对吗
  • 这是我的完整代码,请看:index.html linkcode.html link
猜你喜欢
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-18
  • 2014-02-17
  • 1970-01-01
相关资源
最近更新 更多