我想从页面加载js文件,并在后台页面中要求它。
我尝试在lib和数据文件夹中使用两个副本,但是有查看问题。
我可以从页面中的lib文件夹加载它,但对其他浏览器来说很不舒服。
我可以通过loader加载它:
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");
答案 0 :(得分:0)
我认为erik vold的这篇博文解决了您所面临的问题:http://work.erikvold.com/jetpack/2014/09/23/jp-pro-tip-reusing-js.html