275 votes

Comment puis-je obtenir la URL pour Google Chrome onglet?

Je m'amuse de Google Chrome extension et je veux juste savoir comment je peux stocker l'URL de l'actuelle onglet dans une variable.

C'est peut-être dans la doc, mais vous ne voulez pas à la charge :s

334voto

thauburger Points 619

Je voulais mettre à jour cette réponse, que l'API a changé.

L' chrome.tabs.getSelected() méthode est maintenant obsolète. La méthode recommandée pour obtenir l'URL de l'onglet courant est d'utiliser chrome.tabs.query():

chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
    var url = tabs[0].url;
});

Il faut quand même que vous demandez l'accès à l' chrome.tabs API dans votre extension manifeste:

"permissions": [ ...
   "tabs"
]

Vous pouvez en lire plus sur la désapprobation ici: chrome.onglets.getSelected()

91voto

Axiol Points 1018

Un ami de réponses à ma question.

Tout d'abord, vous devez définir les autorisations pour l'onglet API :

"permissions": [
    "tabs"
]

Et pour stocker l'URL :

chrome.tabs.getSelected(null,function(tab) {
    var tablink = tab.url;
});

28voto

Nyk Cowham Points 191

Le problème, c'est que le chrome.onglets.getSelected est asynchrone. Ce code ci-dessous ne sera généralement pas fonctionner comme prévu. La valeur de 'tablink' sera toujours pas défini quand il est écrit à la console car getSelected n'a pas encore appelé le rappel qui réinitialise la valeur:

var tablink;
chrome.tabs.getSelected(null,function(tab) {
    tablink = tab.url;
});
console.log(tablink);

La solution est de placer le code où vous serez en utilisant la valeur dans une fonction et que invoquée par getSelected. De cette façon, vous êtes assuré de toujours avoir de la valeur, parce que votre code devra attendre pour la valeur avant l'exécution.

Essayez quelque chose comme:

chrome.tabs.getSelected(null, function(tab) {
    myFunction(tab.url);
});

function myFunction(tablink) {
  // do stuff here
  console.log(tablink);
}

2voto

bastianneu Points 1304

Salut voici un Google Chrome Exemple les e-mails du Site actuel à un ami. L'idée de Base est ce que vous voulez...tout d'abord, il récupère le contenu de la page (pas intéressant pour vous)...par la suite, il obtient l'URL (<-- bonne partie)

En outre, c'est un beau travail exemple de code, que je préfère motstly sur la lecture de Documents.

Peuvent être trouvés ici: Envoyer un mail à cette page

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X