我有一个使用RequireJS的多页网站,它会加载一个启动文件(boot.js),然后需要app.js.
app.js处理所有逻辑,所有其他模块初始化通过app.initModule()(只是一个require()调用包装器)发生。
我还有一个app.loadPageJS()来加载页面特定的JS文件(基于window.location.pathname,例如,www.domain.com/path/to/file.html会自动加载/ _assets / JS /页/路径/到/ file.js)
此功能可以打开/关闭,并通过向主体添加“无自动加载”或“自动加载”类别来覆盖。
现在,我的方法不够健全。首先,url重写会破坏机制,对于两个,如果关闭loadPageJS,除非我有权访问body标签,否则我不能包含特定于页面的JS文件(对于使用模板系统的网站,添加body标签的类并不总是一个选项。)
包含页面特定代码的其他方法有哪些?我宁愿避免以下情况:
将特定于页面的代码添加到global.js文件中并执行检查并仅运行某些代码集
使用pageName变量(基本上与上面类似)
提前致谢。
答案 0 :(得分:0)
如果页面上的不同模块由唯一ID(包含在ID为'newsletter'的div中包含的新闻稿模块等)划分,则可以测试DOM中模块元素是否存在并有条件地加载运行该模块所必需的JS文件。因此,它不是特定于页面的,而是特定于模块的。