2012-03-16 51 views
4

我有一个使用RequireJS的多页面网站,它加载一个引导文件(boot.js),然后它需要app.js.如何使用RequireJS加载页面特定的JS文件?

app.js处理所有的逻辑,和所有其他模块初始化发生通过app.initModule()(这仅仅是一个需要()调用包装器)

我也有一个app.loadPageJS()加载页面特定的JS文件(基于window.location.pathname,例如www.domain.com/path/to/file.html会自动加载/_assets/js/pages/path/to/file.js)

该功能可以打开/关闭,并分别向主体添加一类“不自动加载”或“自动加载”来重写。

现在,我的方法不够强大。首先,url重写会破坏机制,对于两种情况,如果loadPageJS关闭,除非我有权访问body标签,否则我不能包含页面特定的JS文件(在使用模板系统的网站中,添加一个类的身体标签并不总是一个选项)。

什么是包含页面特定代码的其他方法?我宁愿避免以下:

  • 添加页面特定代码的global.js文件,如果做检查,只有在运行某些代码中使用页面名称变量(将基本上是类似的设置

  • 到上面)

在此先感谢。

回答

0

如果在页面上有不同的模块(由一个ID为'newsletter'的div中包裹的新闻通讯模块等),您可以测试DOM中是否存在模块元素,并有条件地加载在运行该模块所需的JS文件中。因此,而不是页面特定的,它是模块特定的。

+0

我已经这样做了。我正在寻找将不一定与模块绑定在一起的代码,而是将页面(一些初始化代码或一个不需要模块化的JS功能) – 2012-03-19 23:18:57

相关问题