我将一个字符串变量从插件传递到后台脚本(从 popup.html 调用)。我正在接收字符串,但无法在后台脚本中的监听器函数之外使用我的变量。
插件.js:
chrome.runtime.sendMessage({'greeting': arbitraryString}, function(response) {});
背景.js:
chrome.runtime.onMessage.addListener(
function(result) {
alert("MESSAGE RECIEVED");
alert("arbitraryString: " + result.greeting);
var pw = result.greeting;
}
);
alert('var saved and is: ' + pw);
一切正常直到最后一个警报,因为 pw 未定义。
如何在不使用存储 API 的情况下将监听器函数中的 var 传递到后台脚本内存中,以便alert('var saving and is: ' + pw);成功了吗?
如果成功,pw 是否可以在所有选项卡上用于注入(inject)脚本?
最佳答案
您应该在监听器之外声明 pw。
var pw;
chrome.runtime.onMessage.addListener(
function(result) {
alert("MESSAGE RECIEVED");
alert("arbitraryString: " + result.greeting);
pw = result.greeting;
}
);
关于javascript - 将变量传递给后台脚本并在跨选项卡的其他函数中使用它,而不使用存储 api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58565968/