javascript - 将变量传递给后台脚本并在跨选项卡的其他函数中使用它,而不使用存储 api

标签 javascript html google-chrome-extension background webassembly

我将一个字符串变量从插件传递到后台脚本(从 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 未定义。

  1. 如何在不使用存储 API 的情况下将监听器函数中的 var 传递到后台脚本内存中,以便alert('var saving and is: ' + pw);成功了吗?

  2. 如果成功,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/

相关文章:

HTML-CSS : How to text-align starting from the last word?

android - Chrome 远程调试无法发现任何 USB 设备

javascript - 添加到 chrome devtools 中的设置

javascript - D3.js 和 jQuery - 多个 map 点和点击事件

javascript - 单击更改所有元素的数据状态

html - 背景图像适合带有引导列的 div 宽度和高度 - PARALLAX

iframe - 如何让 Chrome Extension 为每个添加的新 Iframe 运行?

javascript - window.onerror 获取空网址?

java - 如何在ajax中发送多部分请求?

html - 如何在不删除 HTML 缩进的情况下删除 <pre>/<code> block 中的前导空格?