如何使用var中的src创建脚本标记?

时间:2015-04-24 18:36:32

标签: javascript jquery html node.js createelement

您需要从此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

2 个答案:

答案 0 :(得分:0)

尝试

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中插入某些标记时,这将无效。

答案 1 :(得分:0)

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

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.