Javascript 按任意名称加载动态脚本
我想通过在浏览器中使用哈希字符串动态加载脚本:Javascript 按任意名称加载动态脚本,javascript,load,Javascript,Load,我想通过在浏览器中使用哈希字符串动态加载脚本: 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()}); 但上面的代码返回:
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
如何解决这个问题?
谢谢
附言
My 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函数。请检查我的更新答案。我知道如何加载文件,但我不知道如何执行它。谢谢@user889349 Stick man.init;在文件末尾,它将在加载后立即执行。或者,您可以在回调函数中调用man.init。我无法使用我尝试使用的man.init:dunamically query.init