0

我之前打开了一个命名的单例窗口,其中的代码将边界设置为{ 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 表单,它会说它是 null 并且没有被chrome.app.window! 如果我创建了一个以前从未创建过的新窗口(例如optionsWindow3,回调确实返回了一个有效的 AppWindow!这是为什么呢?

4

1 回答 1

0

要更改大小,您必须更改 ID。

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

于 2013-07-01T18:53:43.647 回答