如何让Google Chrome扩展程序弹出窗口保持打开状态?

时间:2010-11-10 17:00:17

标签: javascript google-chrome google-chrome-extension

如果我打开我的扩展程序弹出窗口,那么我打开另一个窗口或标签后弹出窗口如果我返回它就不会保持打开状态。

有没有办法强制它以便弹出窗口保持打开状态?

7 个答案:

答案 0 :(得分:26)

作为用户,您目前无法强制弹出窗口保持打开状态。这是UI团队做出的UI决策。如果您想强制进行设置,可以通过更改弹出图标,在请求时打开新选项卡或注册新弹出视图等方式来显示此设置。

作为开发人员,检查弹出窗口,它将保持打开状态。

答案 1 :(得分:6)

在这里回答常见问题解答:http://developer.chrome.com/extensions/faq.html#faq-persist-popups

当用户将注意力集中在弹出窗口之外的浏览器的某些部分时,弹出窗口会自动关闭。用户点击后无法保持弹出窗口打开。

答案 2 :(得分:6)

cannot stop the Chrome pop-up from closing,除非您处于开发者模式。不过你可以考虑这个选择:

改为启动正常弹出窗口:

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,则会重复使用弹出窗口。

答案 3 :(得分:2)

如果您在“chrome:// flags /#enable-panels”处启用面板,则可以使用以下内容:

chrome.windows.create({
    url:"popup.html",
    type:"panel",
    width:300,
    height:200
});

打开一个面板窗口,只要你不从屏幕底部移动它就会一直保持在顶部。

答案 4 :(得分:0)

This answerHow do I prevent Chrome developer tools from closing when the current browser window closes?在我的案例中非常有用:

不是一个完美的解决方案,但您可以通过打开以下复选框在Window.close和卸载事件上添加断点:

Event Listener Breakpoints -> Load -> unload

 while True:
        if wait_for_user_trigger:
            click.pause(info='Press Enter to send a new request...')
        continue_conversation = assistant.converse()
        # wait for user trigger if there is no follow-up turn in
        # the conversation.
        wait_for_user_trigger = not continue_conversation

        # If we only want one conversation, break.
        if once and (not continue_conversation):
            break

尝试标记两者并查看哪一个最适合您

答案 5 :(得分:0)

解决此问题的最佳方法是:
-右键点击插件弹出窗口
-检查(或CTRK + Shift + I)

一个新的窗口将随检查一起打开...只要保留该窗口,插件弹出窗口就永远不会关闭

答案 6 :(得分:0)

正如其他人所说,这是弹出UI的故意限制。

相反,您可以在页面中注入一些HTML,以将弹出窗口中所需的内容加载到悬停在现有页面上的元素中。您必须自己实现关闭功能,但该功能将持续存在。

例如, keyframes.app是如何做到的:https://github.com/mitchas/Keyframes.app/blob/master/Keyframes.app%20(Extension)/src/inject/ui.js