动态脚本加载任意名称
Dynamic script loading by arbitrary name
我想通过在浏览器中输入哈希字符串来动态加载脚本:
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
函数
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- React 路由器和任意查询参数:页面在加载时无意中刷新
- 未捕获的引用错误:即使在加载 JS 后,在 chrome 扩展名中也没有定义 HTMLInspector
- 在谷歌浏览器扩展名中加载远程Javascript文件
- 加载带有require的html文件时.js扩展名错误
- 在Opera's用户js中,当页面完成加载并下载了所有资源(如img,script,css等)时,使用什么事件名
- 模块名"mysql"尚未加载上下文:_.使用要求([])
- Mysql OR语句使用AJAX返回数组中的所有行名值,然后在Google Maps API V3中加载多个标记
- 如何加载任意数量的图像到画布上
- 未捕获错误:模块名"gcm"尚未加载上下文:_.使用要求([])
- 在页面加载时,通过标签名内联添加一个函数,如onmouseover
- 加载html文件从文件系统与chrome扩展名
- 动态脚本加载任意名称
- 我想通过加载外部.js来改变具有相同类名的元素的样式
- 当加载带有.woff扩展名的字体时,意外令牌是非法的
- 在页面加载上使用类名触发单击事件
- 从RequireJS'中排除任意文件;s r.js优化并异步加载
- 在错误的时间以类名加载屏幕插件
- Javascript-使用$.getJson加载任意数量的URLS
- 如何在JavaScript或jQuery中检查类名,并重新加载到另一个URL