2016-06-07 107 views
0

我想從後臺js獲取cookie值。儘管我能夠在後臺獲取cookie值,但bot能夠獲得cookie值前面的js。獲取響應從background.js的鉻擴展

我想只從背景js返回值到前面。

front.js

$(document).on("click", ".darkbtn", function (event) { 

     chrome.extension.sendRequest({ msg: "startFunc" },function(d){ 
      console.log(d); 
     }); 
}); 

background.js

function getCookies(domain, name, callback) { 

chrome.cookies.get({"url": domain, "name": name}, function(cookie) { 
    if(callback) { 
     callback(cookie.value); 
    } 
}); 
} 
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse){ 
    if(request.msg == "startFunc") 
    { 
     getCookies("http://localhost", "api_key", function(id) { 
     //getCookies("http://developer.chrome.com/extensions/cookies.html", "Sample1", function(id) { 
     sendResponse({data:id}); 
    }); 

       } 
} 
); 

的manifest.json權限

"permissions": [ 
"tabs", 
"storage", 
"cookies", 
"web_accessible_resources", 
"<all_urls>"  
], 

回答

2

您可以使用message passing在擴展和其內容腳本之間建立通信。詳細地說,由於內容腳本在網頁的上下文中運行而不是擴展,所以它們通常需要某種方式與擴展的其餘部分進行通信。

選擇不同類型的傳遞下面根據所列出的信息,你需要什麼:

  1. 簡單的一次性請求

    如果你只需要發送一條消息給另​​一部分(並可選擇回覆),則應使用簡化的runtime.sendMessagetabs.sendMessage

  2. 長期連接

    有時是有用的,除單個請求和響應持續時間較長的對話。在這種情況下,您可以分別使用runtime.connecttabs.connect,從內容腳本打開一個長期頻道到擴展頁面,反之亦然。

  3. 跨擴展消息

    除了在擴展發送不同組件之間的消息,您可以使用消息API與其他擴展進行通信。這使您可以公開其他擴展可以利用的公共API。

重要信息,並就如何執行消息傳遞實例文檔中給出。