[英]How to keep Google Chrome Extension popup open?
如果我打开我的扩展弹出窗口,然后我打开另一个 window 或如果我返回弹出窗口后面的选项卡不会保持打开状态。
有没有办法强制它使弹出窗口保持打开状态?
作为用户,您目前无法强制弹出窗口保持打开状态。 这是 UI 团队做出的 UI 决定。 如果您想强制进行设置,您可以通过更改弹出图标、在请求时打开新选项卡或新的弹出视图进行注册来显示此设置。
作为开发人员,检查弹出窗口,它将保持打开状态。
除非您处于开发者模式,否则您无法阻止 Chrome 弹出窗口关闭。 不过,您可以考虑这种替代方法:
在你的popup.html
文件中,加载一个运行这个的 Javascript 文件:
var popupWindow = window.open(
chrome.extension.getURL("normal_popup.html"),
"exampleName",
"width=400,height=400"
);
window.close(); // close the Chrome extension pop-up
这将在普通弹出窗口中打开扩展中的normal_popup.html
文件,当它失去焦点时不会关闭。 因为 name 参数相同,所以如果用户再次启动popup.html
,弹出窗口将被重用。
在此处回答常见问题解答: https ://developer.chrome.com/docs/extensions/mv3/faq/#faq-persist-popups
当用户关注弹出窗口之外的浏览器某些部分时,弹出窗口会自动关闭。 用户点击离开后,无法保持弹出窗口打开。
正如其他人所说,这是对弹出 UI 的故意限制。
相反,您可以在页面中注入一些 HTML,将您想要在弹出窗口中的内容加载到悬停在现有页面上的元素中。 您必须自己实现关闭功能,但它会持续存在。
看看keyframes.app
是如何做到的: https ://github.com/mitchas/Keyframes.app/blob/master/Keyframes.app%20(Extension)/src/inject/ui.js
如果您在“chrome://flags/#enable-panels”启用面板,您可以使用以下内容:
chrome.windows.create({
url:"popup.html",
type:"panel",
width:300,
height:200
});
打开一个面板窗口,只要您不从屏幕底部移动它,它就会一直保持在顶部。
解决此问题的最佳方法是:
或者只需按CTRL+Shift+I
将使用开发人员工具打开一个新窗口......只需保持该窗口打开,弹出窗口将永远不会关闭。
当当前浏览器窗口关闭时,如何防止 Chrome 开发人员工具关闭? 对我来说非常有帮助:
这不是一个完美的解决方案,但您可以在事件 Window.close 和卸载上添加断点,方法是打开以下位置的复选框:
Developer tools -> "Sources" tab -> Event Listener Breakpoints -> Window -> close
和
Event Listener Breakpoints -> Load -> unload
尝试标记两者,看看哪一个最适合你
我刚刚发现了一个棘手的方法:在导致关闭的进程/函数之前发送一个alert()
框使其保持打开状态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.