动态脚本加载任意名称

Dynamic script loading by arbitrary name

本文关键字:任意名 加载 脚本 动态      更新时间:2023-09-26

我想通过在浏览器中输入哈希字符串来动态加载脚本:

var query = this.param.query; 
// This is a hash string. Example: http://domain.com/#!man
files.run("jsfolder/"+query+".js", function() {query.init()}); 
// or files.run("jsfolder/man.js", function() {man.init()});
但是上面的代码返回:
Uncaught TypeError: undefined is not a function 1.js:98
(anonymous function)
(anonymous function)
script.onload

如何解决这个问题?谢谢。

p。S

我的man.js文件:

var man = {
    init : function(){      
       //do stuff   
    }
}

回调函数(脚本加载后执行):

function() {query.init()}

我不知道你在什么环境中操作,但这应该可以做到:

var header = document.getElementsByTagName("head")[0],
    script = document.createElement("script"),
    query = this.param.query;
script.type = "text/javascript";
script.src = "jsfolder/" + query + ".js";
header.appendChild(script);

本质上是创建一个脚本元素并将其附加到头部。这将加载并执行指定文件中的任何JavaScript。

据我所知,没有files.run函数