2012-03-16 81 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

相關問題