如何在启动时更改先前创建的窗口的高度/宽度?

时间:2013-06-28 00:55:19

标签: html5 google-chrome google-chrome-extension google-chrome-devtools google-chrome-app

我先前打开了一个命名的单例窗口,其代码将边界设置为{ width: 1200, height: 600 }。然后我更改了我的代码并更新了Chrome中的应用程序,但是当它打开时,它会继续使用之前的大小!让它使用不同大小的唯一方法是将其命名为其他东西。我如何使用相同的名称但更改尺寸?

使用的第一个版本

var screenWidth = screen.availWidth;
var screenHeight = screen.availHeight;
var width = 1200;
var height = 600;

//Create the app window
chrome.app.window.create(
    'options.html',
    {
        frame: "none",
        bounds:
        {
            width: width,
            height: height,
            left: Math.round((screenWidth-width)/2),
            top: Math.round((screenHeight-height)/2)
        },
        id: "optionsWindow",
        singleton: true
    }
);

我所用应用的更新版本:

var screenWidth = screen.availWidth;
var screenHeight = screen.availHeight;
var width = 700;
var height = 600;

//Create the app window
chrome.app.window.create(
    'options.html',
    {
        frame: "none",
        bounds:
        {
            width: width,
            height: height,
            left: Math.round((screenWidth-width)/2),
            top: Math.round((screenHeight-height)/2)
        },
        id: "optionsWindow",
        singleton: true
    }
);

在这两种情况下,它的宽度为1200像素。仅当我将名称更改为"optionsWindow2"时,它才会显示为新大小。

更多信息

如果我将回调传递给create函数并尝试在那里使用AppWindow表单,则表示它为空并且未被chrome.app.window打开!如果我创建一个新的,从未创建过的窗口(例如optionsWindow3),那么回调会返回一个有效的AppWindow!为什么会这样?

1 个答案:

答案 0 :(得分:0)

要更改尺寸,您必须更改ID。

您看到的结果是设计的。如果为窗口指定了ID,那么您提供的边界仅使用一次,用于创建初始窗口。然后,当您使用相同的ID再次启动时,用户的窗口边界将被缓存并重新使用。