firefox-addon - 从外部页面上的活动选项卡获取 url
问题描述
我创建了一个非常简单的插件供个人使用。它唯一做的就是显示一个带有外部 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);
})();
推荐阅读
- javascript - 使用 Java 脚本在文本文件 (txt) 中查找多个峰
- mysql - 设置 Docker 以使用文件系统文件夹来存储数据库,UBUNTU?
- corda - 我如何确保只有特定的一方发布状态?
- python - 如何将字典列表转换为数据框?
- python - 获取 zarr 数组切片的视图
- pandas - TypeError:&:'float'和'bool'不支持的操作数类型
- python-3.x - 如何在python中反向遍历文件以查找字符串
- python - 查找列表中的字符总数
- c++ - 删除括号的c ++宏
- php - Laravel 7 Docker - 无法登录到应用程序