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

时间:2017-11-13 09:42:28

标签: javascript firefox-webextensions

我已经使用Firefox WebExtensions创建了一个侧边栏,但是我喜欢将侧边栏停靠在底部,我经常搜索,并且无法找到任何内容。

我使用的代码就是这个:

Sidebar.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);
});

2 个答案:

答案 0 :(得分:0)

嗯,它被称为吧..

引用WebExtension documentation,强调我的:

  

侧边栏是一个窗格,在浏览器窗口的左侧显示,位于网页旁边。

如果你想在其他地方停靠某些东西,你需要将DOM注入带有内容脚本(脆弱)的页面,或者写一个devtools.panels extension并将其停靠在Dev Tools中。

答案 1 :(得分:0)

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

  

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

使用runtime.connect()

可以很好地解决一些类似的问题