如何在浏览器操作面板中获取打开的URL

时间:2014-05-20 20:09:18

标签: javascript firefox firefox-addon-sdk

我正在工具栏右侧创建一个浏览器操作按钮,以便根据选项卡中打开的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。

2 个答案:

答案 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模块,但是它已经过折旧,可能会在接下来的几个版本中删除。