2012-12-29 50 views
0

我已經想出瞭如何在用戶明確地完成每個頁面加載腳本時運行腳本,但是我希望每次運行腳本時它會在其後端自行向數據庫或廣告發送帖子或獲取請求服務器隱式。 [例如,在gmail上,如果我們密切關注請求(可能是firebug - console - all),我們會看到在特定時間POST請求被瀏覽器自己觸發。 ]Chrome擴展程序run_at每次發佈的發佈請求都是?

有什麼辦法可以做到嗎?

其實我正在寫我的第一個擴展,所以它清楚地表明我不太瞭解它。

回答

2

你應該在你的擴展中使用webRequest模塊。

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

,你可以在你的後臺頁面註冊(「background.js」中的例子)所需的任何處理,如onBeforeRequestonBeforeSendHeadersonHeadersReceivedonCompleted和:在清單specifing適當的權限,例如後其他。我認爲這些名字是自我解釋的,但你可以參考上述文件。

根據您的要求,您可以定義阻止請求,修改標頭,只讀並以某種方式分析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"]);