So beenden Sie WebRequest automatisch in der Chrome-Erweiterung

7

Ich poste meine Frage aus der Chromium-extensions Google-Gruppe hier erneut.

In meiner Erweiterung möchte ich einige WebRequests basierend auf dem URL-Muster abbrechen. Mein Problem ist, dass, wenn ich {cancel: true} im Event-Listener onBeforeRequest zurücksende, der Browser auf eine Seite umleitet, die mir mitteilt, dass die Anfrage von einer Extension blockiert wird . Aber ich möchte die Anfrage einfach stillschweigend abbrechen (da nichts passiert ist).

Ich habe auch versucht, {redirectUrl: ""} im Event-Listener onBeforeRequest zurückzugeben. Die Konsole protokolliert einen Fehler, der besagt, dass "" keine gültige URL ist Am unteren Rand des Browsers erschien eine Leiste mit der Aufschrift " Auf Erweiterung warten" . Um diese Leiste zu schließen, führe ich dann das Inhaltsskript " window.stop () " auf dieser Webseite aus. Das funktioniert manchmal, aber nicht immer. Also frage ich mich, ob jemand eine bessere Lösung hat. Danke !!

    
Jun 08.09.2013, 13:08
quelle

3 Antworten

15

Sie sollten stattdessen "javascript:" url verwenden:

%Vor%     
OneOfOne 08.09.2013, 13:37
quelle
6

Umleiten zu einer Seite, die mit dem HTTP-Statuscode 204 antwortet, z. Ссылка Dies ist meine Website, und ich protokolliere keine Zugriffe auf diese URL.

Die Spezifikation fordert für eine Antwort mit dem HTTP-Status 204 das folgende Verhalten:

  

Wenn der Client ein Benutzeragent ist, SOLLTE er seine Dokumentansicht NICHT von der ändern, die die Anforderung zum Senden verursacht hat. Diese Antwort soll vor allem Eingaben für Aktionen ermöglichen, ohne dass die aktive Dokumentansicht des Benutzeragenten geändert wird, obwohl neue oder aktualisierte Metainformationen auf das Dokument angewendet werden sollten, das sich derzeit in der aktiven Ansicht des Benutzeragenten befindet.

Hier ist ein einfaches Beispiel, eine Erweiterung, die stillschweigend alle Anfragen an YouTube blockiert:

%Vor%

Dieses Beispiel verweist auf Ссылка oder Ссылка abhängig vom Schema der Anfragen, um Warnungen vor gemischten Inhalten zu vermeiden.

Damit dieses Beispiel funktioniert, müssen Sie die webRequest-, webRequestBlocking- und Hostberechtigungen für die Site in der Manifestdatei deklarieren.

    
Rob W 08.09.2013 13:19
quelle
3
%Vor%     
coooold 19.12.2014 10:42
quelle