Javascript 卸载在沙盒Chrome应用程序中不可用
我正在使用Dijit(Dojo Toolkit)在沙盒页面中生成HTML布局,但每次我调用Dijit文件时,我得到的Javascript 卸载在沙盒Chrome应用程序中不可用,javascript,google-chrome,dojo,google-chrome-extension,google-chrome-app,Javascript,Google Chrome,Dojo,Google Chrome Extension,Google Chrome App,我正在使用Dijit(Dojo Toolkit)在沙盒页面中生成HTML布局,但每次我调用Dijit文件时,我得到的未捕获卸载在打包的应用程序中不可用。 现在我不确定这是Dojo的问题还是Chrome的新安全策略的局限性 我的文件: /** manifest.json **/ { "name": "Hello App", "version": "2.0", "manifest_version": 2, "description": "A app that says hello",
未捕获卸载在打包的应用程序中不可用。
现在我不确定这是Dojo的问题还是Chrome的新安全策略的局限性
我的文件:
/** manifest.json **/
{
"name": "Hello App",
"version": "2.0",
"manifest_version": 2,
"description": "A app that says hello",
"app": {
"background": {
"scripts" : ["js/app.js"]
}
},
"permissions": [
],
"sandbox": {
"pages" : ["live.html"]
}
}
/** js/app.js **/
chrome.app.runtime.onLaunched.addListener(function(){
chrome.app.window.create('live.html', {width:screen.width,
height: screen.height});
});
/** js/helloapp/app.js **/
/** This is the file that actually calls Dijit to build the layout **/
define(function(){
require(["dijit/layout/ContentPane",
"dijit/layout/BorderContainer"]);
});
我之所以不使用live.html,是因为它基本上只是html结构、对dojo加载程序的调用以及对helloapp/app.js
文件的需求
如果这是CSP领域的一个限制,那么有没有其他方法可以在新的Chrome应用程序上使用Dijit,或者我遗漏了什么
感谢您的时间您必须修改dojocore、dojobase和Dijit中的所有核心源代码,以删除卸载事件或重新定义它
close()
和unload()
非常相似,您可以看到一个关于为什么不在这里实现它的线程:
我只是猜测了一下,因为我以前没有写过Chrome扩展。如果您从本地源加载dojo/Dijit,则可能需要将它们指定为允许应用加载的脚本。如果您是从CDN加载dojo,您可能需要在“权限”部分指定CND主机。我不这么认为,因为根据google developer文档:
注意,您只需要列出希望在windows或框架中加载的页面。沙盒页面使用的资源(例如样式表或JavaScript源文件)不需要出现在沙盒页面列表中,它们将使用嵌入它们的页面的沙盒。
并且该错误似乎与缺乏这方面的权限无关。无论如何谢谢你