Firefox webextension window.resizeTo 不会为 browser.windows.create 创建的页面调整大小
Firefox webextension window.resizeTo does not resize for page created by browser.windows.create
我正在创建一个带有弹出窗口的 Firefox webextension,需要在呈现页面后根据内容以编程方式调整大小。
我有以下代码使用 browser.windows.create 创建弹出窗口 window:
browser.windows.create({
type : 'popup',
url : `page.html`,
});
在 page.html
内,渲染后,我尝试使用以下方法调整大小:
window.resizeTo(<width>,<height>);
然而这并没有起到任何作用。来自 window.resizeTo 文档,它的脚注说:
Note: It's not possible to resize a window or tab that wasn’t created
by window.open(). It's also not possible to resize when the window has
multiple tabs.
我猜这是由于第一个原因,因为 window 不是使用 window.open()
创建的,所以它不能调整大小。有其他选择吗?
我试图避免使用 browser.windows.update,它增加了复杂性,因为我必须发送带有尺寸的消息。我有什么地方做错了或有什么处理方法的建议吗?
page.html
是一个扩展页面(就像 browser_action 弹出窗口或选项页面)所以它可以访问 browser
和 你可以调用 browser.windows.update
直接就像你现在打电话给window.resizeTo
一样,不需要短信。
browser.windows.update(browser.windows.WINDOW_ID_CURRENT, {
width: 500,
height: 500,
});
我正在创建一个带有弹出窗口的 Firefox webextension,需要在呈现页面后根据内容以编程方式调整大小。
我有以下代码使用 browser.windows.create 创建弹出窗口 window:
browser.windows.create({
type : 'popup',
url : `page.html`,
});
在 page.html
内,渲染后,我尝试使用以下方法调整大小:
window.resizeTo(<width>,<height>);
然而这并没有起到任何作用。来自 window.resizeTo 文档,它的脚注说:
Note: It's not possible to resize a window or tab that wasn’t created by window.open(). It's also not possible to resize when the window has multiple tabs.
我猜这是由于第一个原因,因为 window 不是使用 window.open()
创建的,所以它不能调整大小。有其他选择吗?
我试图避免使用 browser.windows.update,它增加了复杂性,因为我必须发送带有尺寸的消息。我有什么地方做错了或有什么处理方法的建议吗?
page.html
是一个扩展页面(就像 browser_action 弹出窗口或选项页面)所以它可以访问 browser
和 你可以调用 browser.windows.update
直接就像你现在打电话给window.resizeTo
一样,不需要短信。
browser.windows.update(browser.windows.WINDOW_ID_CURRENT, {
width: 500,
height: 500,
});