如何获得Chrome扩展的当前标签url?

我知道有很多类似的问题,但我似乎无法得到它的工作。

我正在尝试从我的Chrome扩展程序获取当前标签的url。 Hoewever,alert(tab.url)返回“Undefined”。 我已经在manifest.json中将权限添加到了“选项卡”中。 有任何想法吗?

<html> <head> <script> chrome.tabs.getSelected(null, function(tab) { tab = tab.id; tabUrl = tab.url; alert(tab.url); }); </script> </head> 

问题在于这一行:

 tab = tab.id; 

它应该是这样的:

 var tabId = tab.id; 

只是谷歌人的参考:

OP使用的方法已被弃用。 要获取用户正在查看的标签,只能在他们正在查看的窗口中使用:

  chrome.tabs.query({active: true, currentWindow: true}, function(arrayOfTabs) { // since only one tab should be active and in the current window at once // the return variable should only have one entry var activeTab = arrayOfTabs[0]; var activeTabId = activeTab.id; // or do whatever you need }); 

这对我来说是有效的:

 chrome.tabs.query({ active: true, lastFocusedWindow: true }, function(tabs) { // and use that tab to fill in out title and url var tab = tabs[0]; console.log(tab.url); alert(tab.url); }); 

manifest.json =>

“权限”:[“标签”]

在js =>

  chrome.tabs.query({ active: true, lastFocusedWindow: true }, function(tabs) { // and use that tab to fill in out title and url var tab = tabs[0]; console.log(tab.url); alert(tab.url); }); 

这是我得到我的标签ID:

 var queryStr = '?tabId='; var tabID = parseInt(location.search.substring(queryStr.length));