Comment modifier actuel emplacement de l'url dans le navigateur chrome via des extensions
Je veux créer une extension qui redirige l'utilisateur vers un autre site, s'il clique sur l'extension de bouton. Pour l'instant j'ai seulement vu des extensions de créer un nouvel onglet pour chaque clic.
Est-il possible de rediriger l'utilisateur vers un autre site web à l'aide de l'onglet actif?
J'ai essayé quelque chose comme ceci:
chrome.browserAction.onClicked.addListener(function(tab) {
var url = "https://www.mipanga.com/Content/Submit?url="
+ encodeURIComponent(tab.url)
+ "&title=" + encodeURIComponent(tab.title);
document.location.href = url; //<-- this does not work
});
Vous devez vous connecter pour publier un commentaire.
De la
chrome.les onglets
API, vous pouvez utilisergetCurrent()
ouquery()
.Je préfère
getCurrent
mais il ne peut pas être appelée à partir d'un non-contextuel de l'onglet (par exemple une page d'arrière-plan ou contextuel de la vue). Si c'est un problème pour vous, vous devriez regarder pour utiliserquery
à la place. Jean-Marc Amon est réponse ci-dessous fournit un merveilleux exemple de la façon d'obtenir de l'onglet actif dans ce cas (n'oubliez pas de upvote lui!).Une fois que vous avez l'onglet en cours, il suffit de passer
update()
.NB: pour utiliser cette fonctionnalité, vous doit assurer que vous avez le
tabs
autorisation activé dans votremanifest.json
fichier:getSelected
, déprécié dans v33. Vous devez uniquement utiliserquery
ougetCurrent
.Vous pouvez utiliser google chrome.onglets.requête trop
tab
param est en fait une matrice de type, de sorte qu'il devrait êtretabs[0].id
La
chrome.tabs.update
méthode (au moins, à compter de janvier 2017) sera automatiquement exécuté dans le courant de l'onglet actif si l'onglet id est transmis.Cela a l'avantage de ne pas nécessiter la
tabs
autorisation. Les Extensions de cette autorisation d'avertir l'utilisateur qu'il peut lire l'historique de navigation, de sorte que vous devriez éviter de poser pour elle, si vous n'avez pas besoin d'.Modification de l'onglet actuel de l'adresse URL est aussi simple que d'écrire ceci:
Ou comme indiqué par farwayer dans les commentaires, vous n'avez pas besoin de mettre deux arguments à tous.
tabs
la permission, puisque vous aurez besoin de récupérer l'URL de l'onglet avant d'en rajouter.chrome.tabs.update({url: 'http://example.com'});