Come può un'estensione intercettare qualsiasi URL richiesto per bloccarlo se una condizione corrisponde?Estensione Chrome: come intercettare gli URL richiesti?
Che il permesso deve essere impostato in manifest.json?
Come può un'estensione intercettare qualsiasi URL richiesto per bloccarlo se una condizione corrisponde?Estensione Chrome: come intercettare gli URL richiesti?
Che il permesso deve essere impostato in manifest.json?
codice JavaScript:
L'esempio seguente illustra come bloccare tutte le richieste di www.evil.com:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return {cancel: details.url.indexOf("://www.evil.com/") != -1};
},
{ urls: ["<all_urls>"] },
["blocking"]
);
L'esempio seguente ottiene lo stesso scopo in modo più efficiente perché le richieste che non sono mirate a www.evil.com non devono essere passate all'estensione:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return { cancel: true };
},
{urls: ["*://www.evil.com/*"]},
["blocking"]
);
Registrazione ascoltatori di eventi:
per registrare un listener di eventi per una richiesta Web, si utilizza una variante della solita funzione di addListener()
. Oltre a specificare una funzione di callback, devi specificare un argomento di filtro e puoi specificare un argomento di informazioni extra opzionale.
I tre argomenti addListener web richiesta di API() hanno le seguenti definizioni:
var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];
Ecco un esempio di ascolto per l'evento onBeforeRequest:
chrome.webRequest.onBeforeRequest.addListener(
callback, filter, opt_extraInfoSpec);
permesso necessario su manifesto. json:
"permissions": [
"webRequest",
"webRequestBlocking",
"tabs",
"<all_urls>"
],
Estensioni esempi e collegamenti di aiuto:
Questa è una risposta molto migliore. Grazie per aver dedicato del tempo per farlo. – Xan
@intika Risposta molto apprezzata. Ho appena migliorato la formattazione. – sachinjain024
Si prega di includere abbastanza informazioni in questa domanda in modo che possa essere risolta se, per esempio, il collegamento si spegne. Va bene e incoraggiato a collegarsi a domande correlate, ma questa domanda dovrebbe essere indipendente. – Xan
@intika Accettato/migliorato la modifica, nominata per la riapertura. – Xan