我试图从弹出窗口向我的主内容脚本发送一条消息,这将更改我使用该方法添加到页面中的一些值 updateInfo(val)
. 但是,我遇到了一个问题,我的消息要么根本没有被发送,要么就是content.js没有收到。我试着用 chrome.runtime.sendMessage()
,但这不起作用,所以我做得太过分了,我给每个标签都发了一条信息。my content.js仍然没有收到该消息。我已经在chrome调试器中确认了这一点。当我改变弹出窗口中的选择框时,它会点击 changeYearInfo()
,但content.js中从未收到该消息。
my content.js:
chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
if (request.message === "Year Value Changed") {
let newVal = request.value;
updateInfo(newVal);
}
});
my popup.js:
function changeYearInfo() {
let newYearVal = document.getElementById('yearSessions').value;
chrome.tabs.query({}, tabs => {
tabs.forEach(tab => {
chrome.tabs.sendMessage(tab.id, {
"message": "Year Value Changed",
"value": newYearVal
});
});
});
}
document.addEventListener('DOMContentLoaded', function () {
document.getElementById('yearSessions').addEventListener("change", changeYearInfo);
}
);
我将如何解决此问题?我已经成功地多次使用从background.js到content.js的消息传递,反之亦然,但这是我第一次尝试从弹出窗口向内容发送消息。
编辑:这个问题已经解决了。问题不在于消息传递,而是我根据调试器工具得出的结论,并且在尝试检查content.js中是否接收到我的消息时,我错误地使用了弹出调试器
暂无答案!
目前还没有任何答案,快来回答吧!