2016-03-21 11 views
1

私は{urls:["://www.mysite.com/ .js"]}、 ["blocking"])を取得しません。部。このコードは、@Chrome extension to modify page's script includes and JSで、stackoverflowルールのためにmysite(ドット)comをexample.comに少し変更したものです。次のChrome拡張機能のjavascriptコードスニペットはどのように機能しますか?

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"]);

答えて

1

onBeforeRequest.addEventListenerの第二のパラメータはオプションrequestFilterオブジェクトです。

これは各要素はURLまたはURLパターンである4つの追加のプロパティ

  • のURL(文字列の任意の配列)
    • を有しています。 URLパターン定義のコンテンツスクリプトの一致パターンを参照してください。 URLに一致しないリクエストは除外されます。
  • タイプ(文字列の任意の配列)
    • 各要素は、上記要求タイプです。いずれのタイプにも一致しないリクエストは除外されます。
  • tabId(オプションの整数)の要求が行われるタブの
    • ID。
  • WINDOWID(任意の整数)の要求が行われるウィンドウの
    • ID。

のでurls: ["*://www.example.com/*.js"]}はonBeforeRequestリスナーにURLフィルタを追加しています。

これは、www.example.comドメイン上のjavascriptファイルのリクエストに一致するように試みます。 HTTPまたはHTTPS

使用[(スキーム)*]:\\ [(ホスト)www.example.com]/[(パス)*の.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


第3のパラメータ['blocking']は、追加情報として使用される文字列のオプションの配列です。これにより、Chromeがコールバックを返す方法が変更されます。

"ブロッキング"が含まれているため、コールバック関数は同期的に処理されます。つまり、コールバック関数が返るまで要求はブロックされます。したがって、onBeforeRequestの場合は、リクエストをキャンセルするか、リクエストが発生する前にリダイレクトすることができます。ここで利用可能

さらに詳しい情報:

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

関連する問題