从外部页面上的活动选项卡获取 url

Getting url from active tab on external page

我创建了一个非常简单的插件供个人使用。它唯一做的就是显示一个带有外部 url 的“弹出窗口”。到目前为止它工作正常,但现在我当然想添加功能。为此,我想访问打开扩展程序的选项卡的 url。我已经尝试了很多东西,但我似乎无法理解它。我也很高兴将 url 作为参数添加到“default_popup”的 url 中。

这是我的 manifest.json:

{
  "browser_action": {
    "browser_style": true,
    "default_title": "Name of addon",
    "default_popup": "https://www.testdomain.com/dir/"
  },
  "icons": {
    "48": "lock.svg",
    "96": "lock.svg"
  },
  "description": "Open given page in window on top of browser I guess...?",
  "manifest_version": 2,
  "name": "Name of addon",
  "version": "1.0.11",
  "permissions": [
    "tabs"
  ],
  "applications": {
    "gecko": {
       "id": "name@testdomain.com"
     }
  }
}

对于经验丰富的开发人员来说,这可能只是一件简单的事情,但我今天才开始:)

您必须声明弹出窗口才能使用属于扩展程序的页面。该页面内的脚本将能够获取当前选项卡的 URL 并将弹出窗口重定向到外部站点。

manifest.json,在 browser_action 部分内:

"default_popup": "popup.html"

创建popup.html:

<script src="popup.js"></script>

创建popup.js:

(async () => {
  const [tab] = await browser.tabs.query({active: true, currentWindow: true});
  location.href = 'https://www.example.com/?foo=' + encodeURIComponent(tab.url);
})();