web-dev-qa-db-fra.com

Comment puis-je obtenir l'URL de l'onglet actuel pour l'extension chrome?

Je sais qu'il y a beaucoup de questions similaires sur SO, mais je n'arrive pas à le faire fonctionner.

J'essaie d'obtenir l'URL de l'onglet en cours à partir de mon extension Chrome. Cependant, l'alerte (tab.url) renvoie "Non défini". J'ai ajouté les "onglets" à mes autorisations dans le fichier manifest.json. Des idées?

<html>
<head>
<script>

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

        alert(tab.url);
    });

</script>
</head>
50
rybo

Le problème est dans cette ligne:

tab = tab.id;

Cela devrait être quelque chose comme:

var tabId = tab.id;
28
serg

Juste une info pour les gens de Google:

La méthode utilisée par OP est obsolète. Pour obtenir l'onglet que l'utilisateur visualise et uniquement dans la fenêtre qu'il visualise, utilisez ceci:

  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
Jonathan Dumaine

C'est ce qui a fonctionné pour moi:

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

Avec un peu d'aide de ES6, vous pouvez facilement écrire du code plus agréable :)

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

manifest.json =>

"autorisations": [ "onglets" ]

en 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