我正在工具栏右侧创建一个浏览器操作按钮,以便根据选项卡中打开的URL显示我的扩展程序上的优惠。
在浏览SDK文档后,我发现了这一点:https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_toggle#Attaching_panels_to_buttons但是它表示只支持Firefox 30以上版本,这是一个问题。
为了达到这个目的,我使用了Rob-W的浏览器动作库(来源:https://github.com/Rob--W/browser-action-jplib)
以下是它的工作原理: 我们说,我已经打开了www.example.com,它在我的服务器上有20笔交易。如果我单击我的浏览器操作按钮,它将打开一个显示交易的面板,具体取决于打开的URL(在AJAX请求的帮助下)
现在的问题是: 浏览器操作按钮(点击后)打开popup.html,在我的popup.html中我包含了popup.js。这是我想要访问打开的选项卡URL的文件,以便我可以执行AJAX请求。我不知道如何将打开的标签URL从main.js传递给popup.js。
答案 0 :(得分:0)
sdk / tabs可让您访问当前标签,然后您可以从中获取该位置。 https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/tabs
答案 1 :(得分:0)
我不知道如何将打开的标签网址从main.js传递到 popup.js。
您是否尝试过使用port system.
从内容脚本发出消息:
self.port.emit("myContentScriptMessage", myContentScriptMessagePayload);
要从附加代码接收消息:
self.port.on("myAddonMessage", function(myAddonMessagePayload) {
// Handle the message
});
如果您确实希望在版本30之前定位浏览器,也可以使用widget而不是新的UI模块,但是它已经过折旧,可能会在接下来的几个版本中删除。