Je viens tout juste de commencer à développer Google Chrome Extension et mon projet consiste à créer une extension qui, une fois cliquée, imprime l'URL de la page ou de l'onglet qui est actuellement ouvert.
Donc, si je suis sur la page d'accueil de Google et que je clique sur mon extension, je dois obtenir " https://www.google.com/ " comme sortie dans l'extension.
J'ai besoin de faire cela en utilisant javascript et je suis incapable de trouver le code que je comprends et qui fait le travail. J'ai lu des articles sur l'utilisation de "window.location" et de "document.href", mais cela ne me donne-t-il pas l'URL de mon extension et pas l'onglet actuel?
S'il vous plaît, aidez-moi à démarrer. Merci d'avance.
Essayer
chrome.tabs.getCurrent(function(tab){
console.log(tab.url);
}
);
Notez que vous devez avoir le droit tabs
défini dans votre fichier manifeste
"permissions": [
"tabs"
],
http://developer.chrome.com/extensions/tabs.html
ou l'autorisation activeTab
si elle est initiée par un clic sur le bouton d'extension [ Xan ]
https://developer.chrome.com/extensions/activeTab
Si ce qui précède ne fonctionne pas, essayez
chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
console.log(tabs[0].url);
});
En utilisant javascript, cela fonctionnera si vous ne l'utilisez pas en popup, car javascript en popup retournera l'URL du popup. Par conséquent, en popup, vous devez utiliser l'API de l'onglet Chrome et définir l'autorisation dans le manifeste Chrome.
chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
console.log(tabs[0].url);
});
Donc, le meilleur moyen est d'utiliser l'API de l'onglet Chrome
Vous devez faire attention à ce que vous entendez par "onglet actuel". Si l'utilisateur a plusieurs fenêtres ouvertes, chacune avec plusieurs onglets, Chrome définit la "fenêtre actuelle" comme celle qui exécute le script de contenu utilisant l'API chrome.tabs
. Cela m’est arrivé et j’ai résolu le problème en faisant référence non pas à la fenêtre "courante" mais à la dernière focalisée:
chrome.tabs.query({ active: true, lastFocusedWindow: true }, function (tabs) {
// Do something
});
Références:
https://developer.chrome.com/extensions/windows#current-windowhttps://developer.chrome.com/extensions/tabs#method-query
J'espère que ça aide!
NE PAS utiliser getSelected
Selon les Documents de développement Chrome : chrome.tabs.getSelected
a été deprecated depuis Chrome ver.33
_ {Au lieu de} _ use:
chrome.tabs.query({active:true}, __someCallbackFunction__)
comme la deuxième suggestion de Musa.
cela a fonctionné pour moi l'essayer
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);
});
UPDATE: cette méthode est maintenant obsolète. Ne l'utilisez donc pas
Dans mon cas, tout ce qui précède n'a pas fonctionné. Alors j'ai utilisé ceci:
chrome.tabs.getSelected(null, function(tab) {
console.log(tab.url)
})
et ça a très bien fonctionné! J'espère que ça aide.