gpt4 book ai didi

javascript - 网络扩展 : How can I access the background script in my browser action

转载 作者:行者123 更新时间:2023-12-03 07:18:46 26 4
gpt4 key购买 nike

我对 WebExtension 完全陌生(尝试在 Firefox 下使用它们)。我写了一个浏览器操作。为了保持持久状态,我认为我必须实现一个后台脚本。

如何从浏览器操作脚本访问后台脚本中定义的变量?

或者后台脚本可以包含浏览器操作状态的假设是错误的吗?

最佳答案

好的,明白了。我找到了一个好的开始herehere .

我使用消息发布来在浏览器操作和后台脚本之间进行通信。

想象一个游戏,您可以在浏览器操作弹出窗口中进行操作,并且游戏状态位于后台脚本中。以下是从后台脚本获取硬币数量(玩家资金)到浏览器操作的示例:

浏览器操作:

var _playerCoins = 0;

// I connect a 'port' with the name 'getCoins'.
var _port = chrome.runtime.connect({name: "getCoins"});

// This is the message that is called if the other side posts a message via the port.
// The background script puts the current amount of coins into the message
_port.onMessage.addListener(function(msg) {
// Save the number of coins in a local variable
_playerCoins = msg;
// Display number of coins on my browser action html page
document.getElementById("coins").innerHTML="Coins: " + _playerCoins;
});

后台脚本:

// Add a listener for port connections
chrome.runtime.onConnect.addListener(function(port) {
// If there is a 'getCoins' connection coming in...
if(port.name == "getCoins") {
// ...add a listener that is called when the other side posts a message on the port.
port.onMessage.addListener(function(msg) {
port.postMessage(_playerCoins);
});
}
}

关于javascript - 网络扩展 : How can I access the background script in my browser action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36293838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com