如何使Chrome扩展程序弹出窗口可拖动?



我注意到 1password chrome 扩展程序浏览器操作弹出窗口是可拖动的。如何让我自己的 chrome 扩展程序做同样的事情?我似乎在chrome扩展文档中找不到任何东西。

1password chrome 扩展程序弹出窗口具有的其他一些功能,我在文档中也找不到。

  • 当 1password 弹出窗口出现时,弹出窗口顶部有一个小三角形,它出现在我的光标所在的位置。这是怎么发生的?据我所知,我与弹出窗口关联的 html 文档显示为没有三角形的矩形。
  • 我无法右键单击 1password 弹出窗口的正文来检查 javascript。这可能是因为它们覆盖了默认的上下文菜单行为吗?

标准弹出窗口无法拖动,您也不能在其边框之外添加任何内容。这是一个通过 manifest.json 中的browser_action或page_action声明的弹出页面。

解决方法是:

  • 使用chrome.windows.create打开一个单独的窗口,
    type参数指定为'popup'
  • 使用内容脚本在网页内创建一个 DOM 元素,
    另请参阅如何在 Google Chrome 扩展中真正隔离样式表?
    该元素可以拖动。

要检查阻止上下文菜单的页面,您可以从浏览器菜单中打开 devtools,然后打开"更多工具",或者先聚焦地址栏,然后按热键打开 devtools(Windows 中的CtrlShiftiF12(或从内部 UI 页面chrome://inspect/#pages

。P.S. 从技术上讲,您可以编写一个外部实用程序并通过 nativeMessaging 运行它,因此它将使用低级操作系统 API 来移动标准弹出窗口,但这非常脆弱。