如何加载脚本内容而不执行?

时间:2014-09-28 12:32:36

标签: javascript

我有一个脚本的路径:

var path = 'some_script.js';

它可以是远程路径,相对或绝对路径,来自相同或不同来源:

var path = 'http://path.to/some/another_script.js';

我正在尝试找到一种方法来加载具有给定path的脚本而不执行,并将其内容作为字符串。

我尝试使用无效类型创建script,以便稍后使用某些DOM函数获取其内容:

var s = document.createElement('script');
s.src = path;
s.type = "text/broken";
//    s.type = "text/javascript";

document.getElementsByTagName('head')[0].appendChild(s);

但在这种情况下,脚本甚至没有加载(至少在Chromium中)。如果我将其类型更改为"text/javascript",则会加载脚本,但会立即执行。

有没有办法在没有执行的情况下加载脚本,并获取其内容?

1 个答案:

答案 0 :(得分:4)

你正在寻找一个正常的AJAX调用,它是这样的:

function reqListener () {
    console.log(this.responseText);
}
var oReq = new XMLHttpRequest();
oReq.onload = reqListener;
oReq.open("get", path, true);
oReq.send();

如果您正在使用JQuery,那么您可以改为:

$.get(path, function(data) {
    console.log(data);
});