【发布时间】:2019-06-30 06:55:11
【问题描述】:
我正在开发一个 Chrome 扩展程序,它是外部书签服务的客户端。该扩展程序不同步本机书签:相反,它将有自己的 UI(这是有原因的)。
因此,有一些可能的操作:添加书签、获取(查询)书签和管理书签。每一个都应该有自己的 UI 页面。
我认为一个扩展不能有多个 popup.html,所以我决定通过在我的弹出窗口中创建人工选项卡来解决这个问题,以便用户可以在它们之间切换。但是,当然我还需要至少有以下两个操作的键盘快捷键:
- 添加书签
- 查询书签
例如Ctrl+D 应该打开一个“添加”选项卡激活的弹出窗口,Ctrl+Shift+D 应该打开一个“查询”选项卡激活的弹出窗口。
但到目前为止,我没有做到这一点。理想情况下,我希望通过一些参数调用我的弹出窗口,但这似乎是不可能的。打开弹出窗口只有一个键盘快捷键。
然后我想我是否可以定义一个命令,在后台页面中处理它(例如调整一些内部状态),然后打开一个弹出窗口,它将读取内部状态并显示右侧选项卡;但是,事实证明我什至无法以编程方式显示弹出窗口。我只能使用window.open('popup.html'); 之类的东西,但它会在新选项卡而不是弹出窗口中打开它,所以看起来不太好。
那么有没有办法做到这一点?
【问题讨论】:
-
通过 chrome.windows.create 显示一个真实的
popup窗口。我想不出任何其他选择。 -
感谢您的评论。 chrome 的扩展 API 不允许这样做真是太荒谬了。与 browser_action 的弹出窗口相比,那些真正的弹出窗口看起来很难看。另一种选择是使用内容脚本并显示像这样的对话框 jqueryui.com/dialog ,但这也很丑陋。这只是一个肮脏的黑客。
标签: google-chrome-extension keyboard-shortcuts