在沙盒Chrome应用中卸载不可用

时间:2012-11-22 14:32:26

标签: javascript google-chrome dojo google-chrome-extension google-chrome-app

我正在使用Dijit(Dojo Toolkit)在沙盒页面中生成HTML布局,但每次我调用dijit文件时,都会得到Uncaught unload is not available in packaged apps.

现在我不确定这是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,或者我错过了什么?

感谢您的时间

1 个答案:

答案 0 :(得分:0)

您必须修改Dojo Core,Dojo Base和Dijit中的所有核心源代码才能删除卸载事件或重新定义它。

close()unload()非常相似,你可以看到一个关于它未在这里实现的原因的线程:

http://code.google.com/p/chromium/issues/detail?id=147674

http://code.google.com/p/chromium/issues/detail?id=130465