我想从背景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>"
],
答案 0 :(得分:2)
您可以使用message passing在扩展程序及其内容脚本之间建立通信。详细说明,由于内容脚本在网页的上下文而不是扩展中运行,因此它们通常需要某种方式与扩展的其余部分进行通信。
根据您的需要,从下面列出的不同类型的消息传递中进行选择:
如果您只需要向扩展程序的其他部分发送一条消息(并可选择回复),则应使用简化的
runtime.sendMessage
或tabs.sendMessage
。
有时,进行长于单个请求和响应的对话非常有用。在这种情况下,您可以分别使用
runtime.connect
或tabs.connect
打开从内容脚本到扩展页面的长期频道,反之亦然。
除了在扩展程序中的不同组件之间发送邮件之外,您还可以使用邮件API与其他扩展进行通信。这使您可以公开其他扩展可以利用的公共API。
文档中给出了有关如何执行消息传递的重要信息和示例。