0

ユーザーが明示的に実行する場合、ページの読み込みごとにスクリプトを実行する方法を理解しましたが、データベースまたは広告サーバーに対してバックエンドで暗黙的に投稿またはリクエストを取得するたびにスクリプトを実行したいと思います。 。[たとえば、Gmailでリクエスト(おそらくfirebug-console-all)に注目すると、一定時間後にPOSTリクエストがブラウザから自動的に起動されることがわかります。]

それができる方法はありますか?

実際、私は最初の拡張機能を書いているので、それについてはあまり知らないとはっきりと述べています。

4

1 に答える 1

2

拡張機能でwebRequestモジュールを使用する必要があります。マニフェストで適切な権限を指定した後、次に例を示します。

"permissions": [
    "webRequest",
    "*://*/*"
  ],
"background": {
    "scripts": ["background.js"]
 },

バックグラウンドページ(例では「background.js」)に、、、、、などの必要なハンドラーを登録できonBeforeRequestます。名前は自明だと思いますが、上記のドキュメントを参照してください。onBeforeSendHeadersonHeadersReceivedonCompleted

要件に応じて、リクエストを防止し、ヘッダーを変更し、httpヘッダーを読み取り、何らかの方法で分析するイベントハンドラーを定義できます。

httpヘッダーを読み取り、場合によってはそれらを変更する例:

chrome.webRequest.onBeforeSendHeaders.addListener(
function(details)
{
  console.log(details.url);
  if(details.method == 'POST')
  {
    // do some stuff
    for(var i = 0; i < details.requestHeaders.length; ++i)
    {
      // log or change some headers
      // details.requestHeaders[i].name
      // details.requestHeaders[i].value
    }
  }

  return {requestHeaders: details.requestHeaders};
},
{urls: ["<all_urls>"]},
["blocking", "requestHeaders"]);
于 2012-12-29T11:20:13.247 に答える