如何获得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));