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

Javascript 从chrome扩展的background.js获取响应,javascript,jquery,google-chrome,google-chrome-extension,Javascript,Jquery,Google Chrome,Google Chrome Extension,我想从背景js中获取cookie值。虽然我可以在背景中获取cookie值,但不能在前面的js中获取cookie值 我只想将值从后台js返回到前台。 front.js $(document).on("click", ".darkbtn", function (event) { chrome.extension.sendRequest({ msg: "startFunc" },function(d){ console.log(d); }); }); f

我想从背景js中获取cookie值。虽然我可以在背景中获取cookie值,但不能在前面的js中获取cookie值

我只想将值从后台js返回到前台。

front.js

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

      chrome.extension.sendRequest({ msg: "startFunc" },function(d){
          console.log(d);
      });
});
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});
    });

                }
} 
 );
"permissions": [
"tabs",
"storage",
"cookies",
"web_accessible_resources",
"<all_urls>"     
],
background.js

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

      chrome.extension.sendRequest({ msg: "startFunc" },function(d){
          console.log(d);
      });
});
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});
    });

                }
} 
 );
"permissions": [
"tabs",
"storage",
"cookies",
"web_accessible_resources",
"<all_urls>"     
],
manifest.json权限

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

      chrome.extension.sendRequest({ msg: "startFunc" },function(d){
          console.log(d);
      });
});
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});
    });

                }
} 
 );
"permissions": [
"tabs",
"storage",
"cookies",
"web_accessible_resources",
"<all_urls>"     
],
“权限”:[
“标签”,
“存储”,
“饼干”,
“网络可访问资源”,
""     
],

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

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

  • 简单的一次性请求 如果您只需要向扩展的另一部分发送一条消息(并且可以选择返回响应),则应使用简化的
    运行时.sendMessage
    选项卡.sendMessage

  • 长期连接 有时,进行比单个请求和响应持续时间更长的对话是很有用的。在这种情况下,您可以分别使用
    运行时.connect
    选项卡.connect
    打开从内容脚本到扩展页的长期频道,反之亦然

  • 跨分机消息传递 除了在扩展中的不同组件之间发送消息外,还可以使用消息传递API与其他扩展通信。这使您可以公开其他扩展可以利用的公共API


  • 文档中提供了有关如何执行消息传递的重要信息和示例。

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

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

  • 简单的一次性请求 如果您只需要向扩展的另一部分发送一条消息(并且可以选择返回响应),则应使用简化的
    运行时.sendMessage
    选项卡.sendMessage

  • 长期连接 有时,进行比单个请求和响应持续时间更长的对话是很有用的。在这种情况下,您可以分别使用
    运行时.connect
    选项卡.connect
    打开从内容脚本到扩展页的长期频道,反之亦然

  • 跨分机消息传递 除了在扩展中的不同组件之间发送消息外,还可以使用消息传递API与其他扩展通信。这使您可以公开其他扩展可以利用的公共API

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