我创建了一个需要用户访问令牌并发出http请求的WebExtension,因此,每当用户登录我的网站时,我都将访问令牌保存在cookie中。然后,我的扩展程序将检索此信息以执行某些操作。
我的背景js
var pnumber,JWTtoken
function getCookiesForTab(uri) {
var gettingAllCookies = browser.cookies.getAll({url: uri});
gettingAllCookies.then((cookies) => {
var JWTtoken
if (cookies.length > 0) {
for (let cookie of cookies) {
if (cookie.name == 'JWTtoken'){
this.JWTtoken = cookie.value
}
}else{
console.log("No cookies Found");
}
});
}
getCookiesForTab("http://localhost:5000/")
chrome.tabs.query({active:true, currentWindow:true},function(tabs){
chrome.tabs.sendMessage(tabs[0].id,
{JWTtoken:this.JWTtoken})
})
和我的内容脚本
chrome.runtime.onMessage.addListener(function(req,send,res){
if(req.JWTtoken){
console.log(req.JWTtoken);
// this.JWTtoken = req.JWTtoken
DoSomeWork(req.JWTtoken)
}
})
问题是我想在用户打开页面时正确获取cookie,但它仅在单击扩展名时才会隐藏消息并获取消息。 我已经将background.js脚本添加到我的popup.html中。 反正有做