将变量传递给后台脚本,并在不使用存储API的情况下跨选项卡在其他函数中使用

问题描述 投票:0回答:1

我正在从插件(从popup.html调用)向后台脚本传递字符串变量。我正在接收字符串,但是无法在后台脚本中使用侦听器函数的变量OUTSIDE。

plugin.js:

chrome.runtime.sendMessage({'greeting': arbitraryString}, function(response) {});

background.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是未定义的。

  1. 我如何通过侦听器函数将var传递到后台脚本内存中,而无需使用存储api,从而使alert('var保存并为:'+ pw);成功吗?

  2. 如果成功,pw是否在所有选项卡上都可用于注入脚本?

javascript html google-chrome-extension background webassembly
1个回答
1
投票
中使用侦听器函数的变量OUTSIDE

您应该在侦听器之外声明pw。

var pw;

chrome.runtime.onMessage.addListener(
    function(result) {
        alert("MESSAGE RECIEVED");
        alert("arbitraryString: " + result.greeting);
        pw = result.greeting;
    }
);
© www.soinside.com 2019 - 2024. All rights reserved.