Javascript 如何在Chrome扩展中调试background.js中的事件侦听器

Javascript 如何在Chrome扩展中调试background.js中的事件侦听器,javascript,google-chrome-extension,Javascript,Google Chrome Extension,在没有UI的Chrome扩展中测试background.js中事件侦听器的代码的最佳方法是什么 假设我有以下background.js: chrome.runtime.onMessage.addListener(request => { console.log(request); }); 现在我想调试不同类型的消息(例如,chrome.runtime.sendMessage('someMessage')),并查看要执行的console.log。我曾尝试使用Chrome的DevTo

在没有UI的Chrome扩展中测试background.js中事件侦听器的代码的最佳方法是什么

假设我有以下background.js:

chrome.runtime.onMessage.addListener(request => {
    console.log(request);
});
现在我想调试不同类型的消息(例如,
chrome.runtime.sendMessage('someMessage')
),并查看要执行的
console.log
。我曾尝试使用Chrome的DevTools作为后台页面,并尝试从控制台
发送消息
,但是
控制台.log
行没有被点击

任何帮助都将不胜感激。

(我的重点)

我曾尝试在后台页面使用Chrome的DevTools,并尝试从控制台发送消息,但没有点击控制台的
console.log

使用chrome.runtime.sendMessage在扩展页中发送的消息不会在同一页中作为事件激发。这是为了防止发件人不必要地处理传出消息

您需要创建另一个页面并从中进行测试

它可以是一个空白的HTML文件“test.HTML”,您只需使用
chrome打开即可-extension:///test.html
在选项卡中,然后从那里使用控制台


或者,您可以从内容脚本进行测试(允许使用
chrome.runtime.sendMessage
),但请注意控制台顶部选择的上下文(通常页面的主框架显示为“top”)。

非常感谢,就是这样。我创建了一个
test.html
。然后从该页面的控制台运行
chrome.runtime.sendMessage('someMessage')
。现在正在调用My background.js的事件侦听器。