在具有 id 的 window 上设置边界
Set bounds on a window that has an id
我的应用程序有一个设置 window,我希望这个 window 是唯一的,这样用户就不能同时显示两个设置 windows。问题是我还希望 window 与主 window 相比居中。我使用这段代码(在主要window的JS中):
chrome.app.window.create("settings.html",
{
alwaysOnTop: true,
bounds: {
left: Math.round((window.screenX + (($(window).width() - 498) / 2))), // Perfect left position.
top: Math.round((window.screenY + (($(window).height() - 664) / 2))), // Perfect top position.
width: 498,
height: 664
},
frame : "none",
id: "settings",
resizable: false
}
);
问题是,如果指定了 id
,并且之前显示了具有匹配 id
的 window,则将使用记住的 bounds
,但我我更愿意在每次使用 bounds 选项创建时自己设置边界。因此,如果用户移动 window 并关闭它,则在下一次创建时该位置仍将是 "perfect"。是否有解决此问题的方法?
感谢您的帮助。
恐怕你不能覆盖它。
您可以在回调中创建后立即重新定位 window,使用 outerBounds.setPosition
:
chrome.app.window.create(
"settings.html",
{/*...*/},
function(win) {
win.outerBounds.setPosition(
/*left, top*/
);
}
);
顺便说一下,bounds
已弃用,您应该改用 innerBounds
/outerBounds
。
或者,您可以尝试实施自己的 ID 系统。不要使用 ID,并在创建之前检查您需要的 window 是否已打开(以某种方式识别它)。
我的应用程序有一个设置 window,我希望这个 window 是唯一的,这样用户就不能同时显示两个设置 windows。问题是我还希望 window 与主 window 相比居中。我使用这段代码(在主要window的JS中):
chrome.app.window.create("settings.html",
{
alwaysOnTop: true,
bounds: {
left: Math.round((window.screenX + (($(window).width() - 498) / 2))), // Perfect left position.
top: Math.round((window.screenY + (($(window).height() - 664) / 2))), // Perfect top position.
width: 498,
height: 664
},
frame : "none",
id: "settings",
resizable: false
}
);
问题是,如果指定了 id
,并且之前显示了具有匹配 id
的 window,则将使用记住的 bounds
,但我我更愿意在每次使用 bounds 选项创建时自己设置边界。因此,如果用户移动 window 并关闭它,则在下一次创建时该位置仍将是 "perfect"。是否有解决此问题的方法?
感谢您的帮助。
恐怕你不能覆盖它。
您可以在回调中创建后立即重新定位 window,使用 outerBounds.setPosition
:
chrome.app.window.create(
"settings.html",
{/*...*/},
function(win) {
win.outerBounds.setPosition(
/*left, top*/
);
}
);
顺便说一下,bounds
已弃用,您应该改用 innerBounds
/outerBounds
。
或者,您可以尝试实施自己的 ID 系统。不要使用 ID,并在创建之前检查您需要的 window 是否已打开(以某种方式识别它)。