开发者问题收集

如何获取 Chrome 扩展程序的当前标签 URL?

2011-05-25
114552

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

我试图从我的 Chrome 扩展程序获取当前选项卡的 URL。但是,alert(tab.url) 返回“未定义”。我已将“tabs”添加到 manifest.json 中的权限中。有什么想法吗?

<html>
<head>
<script>

    chrome.tabs.getSelected(null, function(tab) {
        tab = tab.id;
        tabUrl = tab.url;

        alert(tab.url);
    });

</script>
</head>
3个回答

仅供 Google 人员参考:

OP 使用的方法已弃用。要获取用户正在查看的选项卡,并且仅在他们正在查看的窗口中使用,请使用此方法:

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

问题出在这行:

tab = tab.id;

它应该是这样的:

var tabId = tab.id;
serg
2011-05-26

在 manifest.json 中:

"permissions": [
    "tabs"
]

在 JavaScript 中:

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);
});
Kartik Kkartik
2017-07-29