gpt4 book ai didi

javascript - Chrome 扩展程序 : dealing with multiple message listeners

转载 作者:行者123 更新时间:2023-11-28 20:03:17 25 4
gpt4 key购买 nike

我的分机有 chrome.runtime.onMessage.addListener()在后台页面和内容脚本中定义。有些消息需要由后台页面捕获,其他消息需要由内容脚本捕获。我的问题是,由于某种原因,我的内容脚本之一无法捕获消息。

我的背景页面包含:

chrome.runtime.onMessage.addListener(function (msg, sender, respond) {
if (msg["injectCss"]) {
chrome.runtime.sendMessage({ beginInject: msg.injectCss.files.length });
injectCss(sender.tab.id, msg.injectCss.files, 0, function () {
chrome.runtime.sendMessage({ endInject: true });
respond();
});
}
});

我的内容脚本包含:

chrome.runtime.onMessage.addListener(function (msg, sender, respond) {
if (msg["beginInject"]) {
//do something
respond();
}
});

何时 chrome.runtime.sendMessage({ beginInject: msg.injectCss.files.length });从后台页面调用,后台页面本身捕获消息而不是内容脚本。

问题:有没有办法将消息标记为“尚未处理”,以便其他监听器有机会捕获并处理它?<​​/strong>

最佳答案

事实证明答案相当简单:

要专门向内容脚本发送消息,请使用chrome.tabs.sendMessage(tabId, message,callback)。要在其他地方发送消息,请使用chrome.runtime.sendMessage(message,callback)

关于javascript - Chrome 扩展程序 : dealing with multiple message listeners,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21261390/

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