按下Chrome扩展程序的键盘快捷键后,我会使用chrome.windows.create({ type: "popup", ... })
创建一个弹出窗口。为了使扩展程序尽可能地响应,我想通过将其移出屏幕来“隐藏”该窗口。这样,下次调用扩展程序的键盘快捷方式时,我可以简单地将屏幕上的窗口移动到“显示”它。这样可以避免操作系统的新窗口动画,绘制浏览器镶边,加载页面等。
我使用chrome.windows.update(<windowId>, { left: 10000, top: 10000 })
将窗口移动到屏幕外的像素位置,然后将其在屏幕上移动以显示它。
在Windows 10上,当将“显示”设置中的UI缩放比例设置为100%时,这可以完美地工作。不幸的是,如果将UI缩放为150%,则将窗口移出屏幕是行不通的(尽管有时会这样做)。如果我将窗口移至{ left: 10000, top: 10000 }
,则该窗口将最终出现在屏幕的右下角。如果我将其移至{ left: -10000, top: -10000 }
,它将最终显示在左上方。
在macOS 10.15上,窗口大部分移至屏幕外,但可见一小部分。因此,看来我遇到了一些特定于操作系统的行为/错误。
有没有办法可靠地在屏幕外移动/隐藏弹出窗口?
答案 0 :(得分:0)
没有内置的扩展API。
解决方法1:将辅助窗口重新放置在主窗口下。
解决方法2:将辅助窗口的state
'minimized'
How about the :nth-child(3n+3)?
(3 x 0) + 3 = 3 = 3rd Element
(3 x 1) + 3 = 6 = 6th Element
(3 x 2) + 3 = 9 = 9th Element
etc.
How about the :nth-child(2n+1)?
(2 x 0) + 1 = 1 = 1st Element
(2 x 1) + 1 = 3 = 3rd Element
(2 x 2) + 1 = 5 = 5th Element
etc.
# 3, 6, 9 element
.container .gallery-container:nth-child(3n+3) .image img{
border-top-left-radius: 10px;
border-bottom-left-radius: 10px;
}
# 1, 3, 5 element
.container .gallery-container:nth-child(2n+1) .image img{
border-top-left-radius: 10px;
border-bottom-left-radius: 10px;
}
最小化。
解决方法3:使用setting运行单独的实用程序(您可以使用在所有平台上运行的任何语言,例如node.js编写),该实用程序将使用低级OS方法直接操作窗口可见性。
解决方法4:将用户界面作为DOM + ShadowDOM插入页面内。