我正在使用此
从内容脚本发送jwt变量iframe.contentWindow.postMessage(JSON.stringify({ data: jwt}), "*");
然后,我正在尝试使用
在popup.js中阅读消息let token;
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
eventer(messageEvent, function (e) {
let jtoken = JSON.parse(e.data);
token = jtoken.data;
console.log(token);
}, false);
function getData() {
console.log(token);
// Calling API from here
}
// will call the getdata() function from outside and it should be available
getData();
在同一个popup.js中,我还有另一个使用令牌进行api请求的操作。但是,我在标记变量中变得未定义。但是,当我使用debugger;
进行调试时,它会显示令牌值。但是,仅从函数调用并不能获取token
变量中的令牌
答案 0 :(得分:0)
let token;
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
eventer(messageEvent, function (e) {
let jtoken = JSON.parse(e.data);
token = jtoken.data;
console.log(token);
// YOU SHOULD CALL getData() FUNCTION HERE
}, false);
function getData() {
console.log(token);
// Calling API from here
}
您应该在getData
内部调用eventer
函数,因为只有在该函数中设置了令牌后,您才可以使用它。