无法使用chrome.app.window.get获取chrome.window实例

时间:2015-06-26 12:44:26

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

我点击按钮时尝试以下代码:

chrome.app.window.create('sample.html', {
        id: 'test',
        'bounds': {
          'width': 200,
          'height': 200
        },
        'resizable' : false,
        'frame': { type: "none" }
    })
    console.debug(chrome.app.window.getAll())
    var windowcreated = chrome.app.window.get('test');
    windowcreated.innerBounds.height = 50;
    windowcreated.innerBounds.width = 200;

但这是控制台所说的:

  

未捕获的TypeError:无法读取属性' innerBounds'为null

getAll()的调试只返回我在background.js中创建的原始窗口。我不知道自己做错了什么......

1 个答案:

答案 0 :(得分:3)

chrome.app.window.create()asynchronous

当您的执行到达chrome.app.window.get('test')时,该窗口尚不存在。

您需要在callback of chrome.app.window.create

中移动逻辑
chrome.app.window.create('sample.html', {
    id: 'test',
    'bounds': {
      'width': 200,
      'height': 200
    },
    'resizable' : false,
    'frame': { type: "none" }
}, function(createdWindow) {
  // Do stuff here, and no need for get()
  createdWindow.innerBounds.height = 50;
  createdWindow.innerBounds.width = 200;
});