2013-11-21 53 views
0

我無法從我的分機的background.js腳本可以訪問活動標籤(頁)的HTML代碼訪問從Chrome擴展活動頁面的html代碼background.js

的manifest.json

"background": { 
    "scripts": ["jquery.js","background.js"] 
}, 

background.js

chrome.webRequest.onBeforeRequest.addListener(
    function(info) { 
    return {redirectUrl: "http://www.mysite.com/script.php?" + 
         "data=" + encodeURIComponent($('#J_Data').text())}; 
    }, 
    { 
    urls: [ 
    "http://www.othersite.com/addItems.do*" 
    ], 
    types: ["script"] 
}, 
["blocking"]); 

但background.js有活動頁面的html代碼和無法訪問 「$( '#J_Data')。文本()」 不確定! 如何使用background.js和jQuery訪問活動頁面?

回答

1

您正在後臺腳本的上下文中執行jQuery,並且它無權訪問頁面本身。您需要考慮使用chrome.tabs.executeScriptcontent scripts將代碼注入您感興趣的選項卡中。如果您有感興趣的鏈接,則可能需要做的是將腳本注入選項卡,pass them to the background script並存儲在臨時tabIds/url的索引與要包含的數據並在onBeforeRequest偵聽器中查詢該索引。

+0

我試過chrome.tabs.executeScript,但是在executeScript完成之前,redirectUrl會返回url。如果我把redirectUrl改爲chrome.tabs.executeScript回調函數,chrome不會使用redirectUrl。現在我使用內容腳本並在使用redirectUrl之前獲取數據。謝謝。 @abraham – SPnova