【发布时间】:2019-11-05 02:30:01
【问题描述】:
我有一个事件侦听器检查内容脚本中的鼠标移动,当检测到(即鼠标移动)时,它会向 popup.js 扩展脚本发送一条 chrome 消息。但是,popup.js 脚本似乎没有收到从内容脚本传递的任何消息。我还设置了从弹出窗口到内容脚本的辅助消息传递序列,该序列由于某种原因起作用。
chrome.runtime.onMessage.addListener 回调中的打印在运行时不打印。
popup.js:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(request.selText);
if (request.sender == "content" && request.selText == "disabled") {
// Disabled for webpage - No action
} else if (request.sender == "content" && request.selText !==
"disabled"){
// Some action with request.selText
}
});`
content.js:
document.addEventListener('mousemove', function (e) {
chrome.runtime.sendMessage({sender: "content", selText : ""});
}, false);
辅助消息传递(可行):
popup.js:
chrome.tabs.sendMessage(tabs[0].id, {cTabSettings: true});
content.js:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.cTabSettings === true) {
// Some action
} else if (request.cTabSettings === false) {
// Some action
}
});
我的预期结果是 request.selText 字段将在弹出检查器工具中打印,但事实并非如此。
【问题讨论】:
-
我可能是错的,但我想这是因为弹出脚本只有在弹出窗口打开时才处于活动状态(并且正在侦听)。在那之后,唯一会不断收听的就是后台脚本。
-
我刚刚测试了扩展,弹出窗口仍然打开,打印仍然没有显示。
标签: javascript google-chrome google-chrome-extension