extensions du navigateur Chrome: Comment activer l'action de la page pour tous les liens sortants d'une certaine page?

StackOverflow https://stackoverflow.com/questions/2483705

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!

Était-ce utile?

La solution

  1. 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.
  2. Vous devez implémenter script de contenu
  3. 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top