繁体   English   中英

如何停靠使用 Firefox WebExtensions 创建的侧边栏?

[英]How to dock a sidebar created with Firefox WebExtensions?

我已经使用 Firefox WebExtensions 创建了一个侧边栏,但我很想将侧边栏停靠在底部,我搜索了很多,但找不到任何东西。

我使用的代码是这样的:

侧边栏.js

var thisPanel = browser.extension.getURL("/this.html");
var thatPanel = browser.extension.getURL("/that.html");

function toggle(panel) {
  if (panel === thisPanel) {
    browser.sidebarAction.setPanel({panel: thatPanel});
  } else {
    browser.sidebarAction.setPanel({panel: thisPanel});
  }
}

browser.browserAction.onClicked.addListener(() => {
  browser.sidebarAction.getPanel({}).then(toggle);
});

嗯,它被称为侧边栏..

引用 WebExtension 文档,强调我的:

侧边栏是显示浏览器窗口左侧网页旁边的窗格。

如果您想将某些内容停靠在其他地方,您需要将 DOM 注入带有内容脚本(脆弱)的页面,或者编写一个devtools.panels扩展并将其停靠在开发工具中。

这受到 Webextension 标准的限制:您不能调用等待承诺的用户操作,因为这不被视为“用户操作处理程序”。 在这里阅读更多:

一些 WebExtension API 执行通常作为用户操作的结果执行的功能。 [...] 为了遵循“无意外”的原则,只能从处理程序内部为用户操作调用此类 API。

对于使用runtime.connect()一些类似问题,有一个很好的解决方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM