2016-03-21 22 views
1

Ich bekomme nicht die {urls: [": //www.mysite.com/ .js"]}, ["Blockierung"]); Teil. Dieser Code kann @Chrome extension to modify page's script includes and JS mit der geringfügigen (erzwungenen) Änderung von mysite (dot) com zu example.com gefunden werden, aufgrund von Stackoverflow-Regeln.Wie funktioniert das folgende JavaScript-Code-Snippet für Chrome-Erweiterungen?

chrome.webRequest.onBeforeRequest.addListener(
 
    function(details) { 
 
     if(details.url == "http://www.example.com/js/library.js") 
 
      return {redirectUrl: "http://www.example.com/js/library_dev.js" }; 
 
    }, 
 
    {urls: ["*://www.example.com/*.js"]}, 
 
    ["blocking"]);

Antwort

1

Der zweite Parameter von onBeforeRequest.addEventListener ist ein optionales requestFilter Objekt.

Es hat vier zusätzliche Eigenschaften

  • URLs (optional Array von string)
    • Jedes Element ist eine URL oder einer URL-Muster. Bitte beachten Sie die Übereinstimmungsmuster für Inhaltsskripte für die URL-Musterdefinition. Anfragen, die keiner der URLs entsprechen können, werden herausgefiltert.
  • Typen (optional Array von string)
    • Jedes Element ist eine oben beschriebene Anforderungstyp. Anforderungen, die keinem der Typen entsprechen, werden herausgefiltert.
  • tabId (optional integer)
    • Die ID der Lasche in die stattfindet anfordert.
  • windowId (optional integer)
    • Die ID des Fensters, in dem Platz anfordert findet.

So urls: ["*://www.example.com/*.js"]} ist das Hinzufügen eines URL-Filter zum onBeforeRequest Zuhörer.

Dies ist der Versuch, alle Anfragen für eine JavaScript-Datei in der Domain www.example.com zu erfüllen. Verwendung von HTTP oder HTTPS

[(Schema) *]: \\ [(host) www.example.com]/[(Pfad) * Js]

<url-pattern> := <scheme>://<host><path> 
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' 
<host> := '*' | '*.' <any char except '/' and '*'>+ 
<path> := '/' <any chars> 

https://developer.chrome.com/extensions/match_patterns


der dritte Parameter ist eine optionale ['blocking'] Array von Zeichenkette für zusätzliche Informationen verwendet wird. Dies ändert, wie Chrome Ihren Rückruf zurückgibt.

Da es "Blockieren" enthält, wird die Callback-Funktion synchron behandelt.Das bedeutet, dass die Anfrage blockiert wird, bis die Callback-Funktion zurückkehrt. Mit onBeforeRequest können Sie also eine Anfrage abbrechen oder umleiten, bevor sie stattfindet.

Weitere Informationen finden Sie hier:

https://www.chromium.org/developers/design-documents/extensions/proposed-changes/apis-under-development/notifications-of-web-request-and-navigation

Verwandte Themen