簡體   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