从chrome扩展的background.js获取响应

时间:2016-06-07 03:02:14

标签: javascript jquery google-chrome google-chrome-extension

我想从背景j中获取cookie值。即使我能够在后台获得cookie值但是bot能够在前面的js中获得cookie值。

我想将背景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>"     
],

1 个答案:

答案 0 :(得分:2)

您可以使用message passing在扩展程序及其内容脚本之间建立通信。详细说明,由于内容脚本在网页的上下文而不是扩展中运行,因此它们通常需要某种方式与扩展的其余部分进行通信。

根据您的需要,从下面列出的不同类型的消息传递中进行选择:

  1. 简单的一次性请求
      

    如果您只需要向扩展程序的其他部分发送一条消息(并可选择回复),则应使用简化的runtime.sendMessagetabs.sendMessage

  2. 长期连接
      

    有时,进行长于单个请求和响应的对话非常有用。在这种情况下,您可以分别使用runtime.connecttabs.connect打开从内容脚本到扩展页面的长期频道,反之亦然。

  3. 跨群发邮件
      

    除了在扩展程序中的不同组件之间发送邮件之外,您还可以使用邮件API与其他扩展进行通信。这使您可以公开其他扩展可以利用的公共API。

  4. 文档中给出了有关如何执行消息传递的重要信息和示例。