it-swarm.com.de

Wie kann ich die aktuelle Tab-URL für die Chrome-Erweiterung erhalten?

Ich weiß, dass es viele ähnliche Fragen zu SO gibt, aber ich kann nicht scheinen, dass es funktioniert.

Ich versuche, die URL der aktuellen Registerkarte von meiner Chrome-Erweiterung abzurufen. Die Warnung (tab.url) gibt jedoch "Undefined" zurück. Ich habe die "Registerkarten" zu meinen Berechtigungen in der manifest.json hinzugefügt. Irgendwelche Ideen?

<html>
<head>
<script>

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

        alert(tab.url);
    });

</script>
</head>
50
rybo

Das Problem ist in dieser Zeile:

tab = tab.id;

Es sollte so etwas sein wie:

var tabId = tab.id;
28
serg

Nur eine FYI für Leute von Google:

Die Methode, die OP verwendet, ist veraltet. Um die Registerkarte anzuzeigen, die der Benutzer anzeigt, verwenden Sie nur in dem Fenster, das er anzeigt, Folgendes:

  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

  });
96

Das hat bei mir funktioniert:

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);
});
7
jayant singh

Mit etwas Hilfe von ES6 können Sie leicht schöneren Code schreiben :)

chrome.tabs.query({
  active: true,
  currentWindow: true
}, ([currentTab]) => {
  console.log(currentTab.id);
});
3
rogyvoje

manifest.json =>

"Berechtigungen": [ "Tabs" ]

in 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);
        });
2
Kartik Kkartik