Chrome Browser-Erweiterungen: Wie Seite Aktion für alle ausgehenden Links von einer bestimmten Seite aktivieren?

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

Frage

Ich würde meine Seite Aktion wie für alle ausgehenden Links von einer bestimmten Seite aktiviert werden. Wie könnte ich mich über das zu tun? Ich habe über die Dokumentation ohne Erfolg gegangen. Alle Hinweise würden geschätzt!

War es hilfreich?

Lösung

  1. Google Chrome-API nicht über eine solche API, aber Funktionen, die Sie wollen, können unter Verwendung von Standard-Google-Chrome-Erweiterungen API implementiert werden.
  2. Sie müssen Content-Skript
  3. implementieren
  4. Ihr Inhalt Skript sollte DOM der Seite ändern Sie alle ausgehenden Links mit Ihrer benutzerdefinierten Javascript zu handhaben und außer Kraft setzen, die ein paar Sachen und offen klickten Link tun.

Link ändern href Sie etwas tun können:

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.

Statt newHref können Sie so etwas wie

erzeugen

a.href = "javascript:processOutgoingLinkClick('" + element.href + "')"

Funktion processOutgoingLinkClick sollte eigentliche Verarbeitung des Klicks enthalten.

Andere Tipps

Nur eine Neugier, warum willst du nicht verwenden, um die Chrome-Erweiterungen Tab Events können Sie für OnUpdated OnCreated hören. Wenn ein Benutzer klickt auf einen Link auf der Seite wird es ein Ereignis innerhalb OnUpdated gehen und Feuer.

So in Ihrem background.html, können Sie tun:

chrome.tabs.onUpdated.addListener(function(tabId, info) {
  if (info.status === 'loading')
    console.log('Loading url ... ' + info.url)
});

Das Gleiche gilt für OnCreated. Dann, während seines Ladens, können Sie entscheiden, was Sie mit Ihrem pageAction zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top