estensioni del browser Chrome: Come attivare l'azione della pagina per tutti i link in uscita di una certa pagina?
-
21-09-2019 - |
Domanda
Vorrei che la mia azione di pagina da attivare per tutti i link in uscita da una certa pagina. Come potrei fare per fare che? Sono andato oltre i documenti senza alcun risultato. Tutti gli indicatori sarebbe apprezzato!
Soluzione
- Google Chrome API non ha tale API, ma la funzionalità che si desidera può essere implementato usando standard di Google estensioni di Chrome API.
- È necessario implementare
- Lo script contenuto dovrebbe modificare DOM della pagina che si desidera gestire e sovrascrivere tutti i link in uscita con il tuo javascript personalizzato che sarà fare alcune cose e aprire link cliccato.
Per modificare link href si può fare qualcosa di simile:
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.
Invece di newHref è possibile generare qualcosa come
a.href = "javascript:processOutgoingLinkClick('" + element.href + "')"
processOutgoingLinkClick
funzione dovrebbe contenere elaborazione effettiva del clic.
Altri suggerimenti
Una curiosità, perché non ti utilizzare gli eventi Chrome Extensions Tab è possibile ascoltare per onUpdated onCreated. Quando un utente fa clic su un link nella pagina andrà e generare un evento all'interno di onUpdated.
Quindi, all'interno della vostra background.html, si può fare:
chrome.tabs.onUpdated.addListener(function(tabId, info) {
if (info.status === 'loading')
console.log('Loading url ... ' + info.url)
});
Stessa cosa per onCreated. Poi, mentre il suo carico, si può decidere cosa fare con il vostro pageAction.