簡體   English   中英

在firefox xul擴展中使用requirejs

[英]using requirejs within a firefox xul extension

我想使用requirejs在firefox xul插件中管理我的代碼,但無法找到我的模塊。

我知道xul與data-main屬性的配合不好,所以我將main.js腳本作為第二個腳本:

<script src="chrome://myPackage/content/require.js" type="application/x-javascript"></script>
<script src="chrome://myPackage/content/main.js" type="application/x-javascript"></script>

這成功調用了腳本,並且main.js中可以使用require函數,但是當我運行時

require(['lib1'], function(lib1){
    alert(lib1.val1);
})

警報永遠不會彈出(lib1與main.js位於同一目錄中)。

我已經嘗試過並且沒有將baseUrl設置為

require.config({
    baseUrl: "chrome://myPackage/content/"
})

而且這兩種方式都不起作用。

有誰知道我如何獲得require.js在合適的位置查找我的模塊?

附錄**

我添加了一個錯誤處理功能,返回的錯誤代碼是

http://requirejs.org/docs/errors.html#timeout

我已將測試模塊成功加載到普通網頁中。 這似乎可以確認問題是路徑配置(失敗之前還需要15秒的超時)

Firebug似乎有一個有效的requirejs版本。 但更重要的是,它們具有更好的mini-require.js ,當在疊加層中使用時,它們不會污染共享的全局范圍(如果正確使用:p)

我建議您看看這些實現以及使用它的代碼。

主動警告 :請注意,如果您的加載項使用的代碼通過定義全局函數或變量或隱式聲明函數中的變量,從而在覆蓋圖( window )中的范圍上定義了許多新屬性,則這可能會干擾其他代碼的運行范圍相同(瀏覽器代碼本身和其他加載項)。 此外,如果您想將附件提交到addons.mozilla.org,那么如果您的附件“污染”了主疊加層中的全局范圍/命名空間,則審閱者可能不會將其公開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM