最后在使用我的打包应用程序使用dojo方面取得了一些进展后,我遇到了另一个找不到任何文档的路障。
{
...
"sandbox": {
"pages": ["test.html"]
},
"app": {
"background": {
"scripts": [
"background.js"
]
}
}
}
test.html从应用程序以及我的一些模块加载dojo,但是当dojo解析页面的dom时,我得到了platformApp抛出的错误
Uncaught unload is not available in packaged apps. platformApp:14
(anonymous function) platformApp:14
Window.addEventListener platformApp:127
addListener dojo.js.uncompressed.js:15317
on.parse
我是否可以添加到沙盒中的CSP规则让这样做是正常的?
答案 0 :(得分:4)
我希望chrome默认执行此操作而不是抛出错误...但这是我在加载dojo之前必须做的事情:
// Prevent registrations for unload/beforeunload and warn, chrome will throw exception.
(function() {
var windowAddEventListener = Window.prototype.addEventListener;
Window.prototype.addEventListener = function(type) {
if (type === 'unload' || type === 'beforeunload') {
try {
throw new Error('Do not use Window.addEventListener for ' + type);
} catch (e) {
console.error(e.message, e);
}
} else
return windowAddEventListener.apply(window, arguments);
};
})();
答案 1 :(得分:1)
正如错误消息所述,对打包的应用程序禁用了load和beforeload方法,这也适用于沙盒iframe。您可以查看禁用的其他内容here。
话虽如此,我只是在沙盒iframe中尝试了dojo 1.8,只要我没有设置卸载侦听器,简单的Hello Dojo sample似乎工作正常。