如何从“新标签页”调用我的Chrome扩展程序?

时间:2014-04-01 11:59:41

标签: google-chrome google-chrome-extension

我的Chrome扩展程序有一个带有一些链接的弹出窗口,如果它是新标签页,我希望在当前标签页中打开,否则打开新标签页。所以我相信我需要知道活动标签的URL。或者是否有其他方法来识别新标签?

我想使用“activeTab”权限而不是“标签” - 我希望用户看到尽可能少列出的权限。

我发现识别标签网址的唯一方法是使用背景页面和

chrome.browserAction.onClicked.addListener(function(tab))

但这与清单中定义的弹出窗口不兼容。我可以以编程方式设置弹出页面,但我看不到弹出窗口的方法。有没有办法做到这一点?

当我在清单中定义了default_popup时,我使用

document.addEventListener('DOMContentLoaded', function ())

启动相关代码,因此不能参考活动选项卡。是否有另一种方法来运行代码,或者获取活动选项卡?

感谢。

1 个答案:

答案 0 :(得分:2)

activeTab权限允许您“通过返回tabs.Tab对象的API获取该标签的网址,标题和图标”。因此,要从弹出窗口获取当前选项卡URL,您可以执行以下操作:

chrome.tabs.query( {active:true, currentWindow: true}, function(tabs) {
    currentUrl = tabs[0].url;
});