extensions du navigateur Chrome: Comment activer l'action de la page pour tous les liens sortants d'une certaine page?
-
21-09-2019 - |
Question
Je voudrais que mon action de page à activer pour tous les liens sortants d'une page donnée. Comment pourrais-je aller à le faire? Je suis allé sur les docs en vain. Tous les pointeurs seraient appréciés!
La solution
- Google Chrome API ne possède pas cette API, mais la fonctionnalité que vous voulez peut être implémentée en utilisant Google Chrome Extensions API standard.
- Vous devez implémenter script de contenu
- Votre script de contenu doit modifier DOM de la page que vous souhaitez gérer et remplacer tous les liens sortants avec votre javascript personnalisé qui fera des choses et ouvrir le lien cliqué.
Pour modifier href lien que vous pouvez faire quelque chose comme ceci:
function processLink(element, newHref) {
var a = document.createElement("a");
a.href = newHref;
a.textContent = element.textContent;
a.title = element.title;
element.parentNode.replaceChild(a, element);
}
UPDATE 1.
Au lieu de newHref vous pouvez générer quelque chose comme
a.href = "javascript:processOutgoingLinkClick('" + element.href + "')"
Fonction processOutgoingLinkClick
doit contenir le traitement réel du clic.
Autres conseils
Juste une curiosité, pourquoi l'habitude d'utiliser les extensions Chrome onglet Événements vous pouvez écouter OnUpdated onCreated. Lorsqu'un utilisateur clique sur un lien sur la page, il va et déclencher un événement dans les OnUpdated.
au sein de votre background.html, vous pouvez faire:
chrome.tabs.onUpdated.addListener(function(tabId, info) {
if (info.status === 'loading')
console.log('Loading url ... ' + info.url)
});
Même chose pour onCreated. Ensuite, alors que son chargement, vous pouvez décider quoi faire avec votre pageaction.