1
我想從頁面加載js文件並要求它在後臺頁面中。我怎樣才能要求數據文件夾中的腳本
我嘗試在lib和數據文件夾中使用兩個副本,但有複習問題。
我可以從頁面中的lib文件夾加載它,但它不適合其他瀏覽器。
我可以通過加載器加載:
mono = require('toolkit/loader').main(require('toolkit/loader').Loader({
paths: {
'sdk/': 'resource://gre/modules/commonjs/sdk/',
'data/': self.data.url('js/'),
'': 'resource:///modules/'
},
name: self.name,
prefixURI: 'resource://'+self.id.slice(1, -1)+'/'
}), "data/mono");
但是有問題:
require('net/xhr').XMLHttpRequest
我嘗試選擇它的使用,但有同樣的問題。
require('@loader/options')
現在我使用它,但都需要通過我的論點發送對象。
有想法嗎?
upd 現在我使用這段代碼,它允許需要模塊,並且不會將它存儲在內存中,正如我想的那樣。但需要先聲明所有模塊。
mono = require('toolkit/loader').main(require('toolkit/loader').Loader({
paths: {
'data/': self.data.url('js/')
},
name: self.name,
prefixURI: 'resource://'+self.id.slice(1, -1)+'/',
globals: {
console: console,
_require: function(path) {
switch (path) {
case 'sdk/timers':
return require('sdk/timers');
case 'sdk/simple-storage':
return require('sdk/simple-storage');
case 'sdk/window/utils':
return require('sdk/window/utils');
case 'sdk/self':
return require('sdk/self');
default:
console.log('Module not found!', path);
}
}
}
}), "data/mono");
它只能用於NPM包或其他庫。但是如果我需要從數據文件夾中加載js,則它不起作用。問題沒有解決方案,因爲在構建xpi時都需要聲明。 – user84531 2014-11-05 05:38:22
user84531:解決問題的方法與描述的相同,將js庫放在lib文件夾中,以便它可以通過模塊加載。然後,您可以像數據文件夾中的文件一樣加載相同的文件。 – humanoid 2014-11-14 11:30:17
人型生物:是我寫的「我可以從頁面的lib文件夾中加載它,但對其他瀏覽器不太舒服。」 – user84531 2014-11-24 02:38:48