如何在 Firefox WebExtension 中查看后台脚本的 console.log 输出?
How do I see the console.log output of a background script in a Firefox WebExtension?
有谁知道如何在后台脚本中查看 console.log()
调用的输出?我可以在内容脚本中看到相同的输出。这是我正在测试的一个简单脚本:
这是我的background.js:
console.log("Message from background.js");
这是我的manifest.json:
{
"name": "TestBed",
"manifest_version": 2,
"version": "1.0",
"background": {
"scripts": ["background.js"]
},
"browser_action": {
"default_title": "Click"
},
"applications": {
"gecko": {
"id": "testbed@example.com",
"strict_min_version": "48.0a1"
}
}
}
我也在后台脚本中试过这个:
chrome.browserAction.onClicked.addListener(function() {
console.log('Message from background.js onclicked handler');
});
我什至按照其他一些帖子的建议卸载了 Firebug,但这也没有什么区别(请注意内容脚本中的 console.log
有效)。
有关在控制台中查看扩展输出的更一般的答案,请参阅我对以下内容的回答:Google Chrome / Firefox do not see extension output in console。
Add-on Debugger
这是您应该用来在 WebExtension 的后台上下文中查看脚本 运行 的控制台输出。这包括后台脚本、弹出窗口中的脚本 运行、选项页面以及从扩展加载的任何其他页面作为选项卡或 iframe 的主要 URL。您可以通过 about:debugging
➞Inspect 访问附加调试器(使用与您正在调试的 WebExtension 关联的“Inspect”按钮;每个扩展都有一个单独的按钮)。这将使用调试器打开一个新选项卡。然后,您可以单击该浏览器选项卡中的控制台选项卡。此控制台将仅显示您正在检查的 WebExtension 中的内容。
Browser Console
默认情况下,浏览器控制台不再显示 WebExtensions 后台页面的输出。您可以通过选择显示“显示内容消息”来显示 all WebExtensions 的输出,当您单击window 的右上角,就在“请求”的右边。
您可以从 Browser Console 中的后台脚本中看到 console.log()
的输出。您可以使用键盘快捷键 Ctrl-Shift-J 或Cmd-Shift-J on OSX,或从 Firefox 菜单栏:工具➞Web 开发者➞浏览器控制台。
在大于或等于 49 的版本中测试 WebExtensions 时,1 我经常滥用错误功能导致扩展程序打开浏览器控制台。 alert()
函数在后台脚本中不受支持,但会打开浏览器控制台并在控制台中输出警告文本。2 这样做将在 Firefox 版本大于或等于等于 49.0。但是,它会在早期版本的 Firefox 中引发错误。
为了测试,我经常在我的后台脚本中包含如下内容:
//* For testing, open the Browser Console
try {
//alert() is not actually supported in Firefox WebExtension background scripts.
//This forces the Browser Console open.
//This abuse of a misfeature works in FF49.0b+, not in FF48.
alert('Open the Browser Console.');
} catch(e) {
//alert() throws an error in Firefox versions below 49.
console.log('alert() threw an error. Probably Firefox version < 49.');
}
//*
- 在 Firefox 52.0a2(开发版)和 53.0a1(夜间)中有一段时间,它会抛出一个神秘的错误。在这些版本的最新版本中,这已返回到 Firefox 49 中看到的功能:打开浏览器控制台并显示传递的文本和 2(下面)中的消息。
- 除了传给
alert()
的文字外,还会单独一行输出:“alert() is not supported in background windows; please use console.log instead ."
有谁知道如何在后台脚本中查看 console.log()
调用的输出?我可以在内容脚本中看到相同的输出。这是我正在测试的一个简单脚本:
这是我的background.js:
console.log("Message from background.js");
这是我的manifest.json:
{
"name": "TestBed",
"manifest_version": 2,
"version": "1.0",
"background": {
"scripts": ["background.js"]
},
"browser_action": {
"default_title": "Click"
},
"applications": {
"gecko": {
"id": "testbed@example.com",
"strict_min_version": "48.0a1"
}
}
}
我也在后台脚本中试过这个:
chrome.browserAction.onClicked.addListener(function() {
console.log('Message from background.js onclicked handler');
});
我什至按照其他一些帖子的建议卸载了 Firebug,但这也没有什么区别(请注意内容脚本中的 console.log
有效)。
有关在控制台中查看扩展输出的更一般的答案,请参阅我对以下内容的回答:Google Chrome / Firefox do not see extension output in console。
Add-on Debugger
这是您应该用来在 WebExtension 的后台上下文中查看脚本 运行 的控制台输出。这包括后台脚本、弹出窗口中的脚本 运行、选项页面以及从扩展加载的任何其他页面作为选项卡或 iframe 的主要 URL。您可以通过 about:debugging
➞Inspect 访问附加调试器(使用与您正在调试的 WebExtension 关联的“Inspect”按钮;每个扩展都有一个单独的按钮)。这将使用调试器打开一个新选项卡。然后,您可以单击该浏览器选项卡中的控制台选项卡。此控制台将仅显示您正在检查的 WebExtension 中的内容。
Browser Console
默认情况下,浏览器控制台不再显示 WebExtensions 后台页面的输出。您可以通过选择显示“显示内容消息”来显示 all WebExtensions 的输出,当您单击window 的右上角,就在“请求”的右边。
您可以从 Browser Console 中的后台脚本中看到 console.log()
的输出。您可以使用键盘快捷键 Ctrl-Shift-J 或Cmd-Shift-J on OSX,或从 Firefox 菜单栏:工具➞Web 开发者➞浏览器控制台。
在大于或等于 49 的版本中测试 WebExtensions 时,1 我经常滥用错误功能导致扩展程序打开浏览器控制台。 alert()
函数在后台脚本中不受支持,但会打开浏览器控制台并在控制台中输出警告文本。2 这样做将在 Firefox 版本大于或等于等于 49.0。但是,它会在早期版本的 Firefox 中引发错误。
为了测试,我经常在我的后台脚本中包含如下内容:
//* For testing, open the Browser Console
try {
//alert() is not actually supported in Firefox WebExtension background scripts.
//This forces the Browser Console open.
//This abuse of a misfeature works in FF49.0b+, not in FF48.
alert('Open the Browser Console.');
} catch(e) {
//alert() throws an error in Firefox versions below 49.
console.log('alert() threw an error. Probably Firefox version < 49.');
}
//*
- 在 Firefox 52.0a2(开发版)和 53.0a1(夜间)中有一段时间,它会抛出一个神秘的错误。在这些版本的最新版本中,这已返回到 Firefox 49 中看到的功能:打开浏览器控制台并显示传递的文本和 2(下面)中的消息。
- 除了传给
alert()
的文字外,还会单独一行输出:“alert() is not supported in background windows; please use console.log instead ."