我遇到了一个问题,导致我完全崩溃。我的Chrome扩展没有显示控制台错误,但它显示日志
我的Chrome扩展程序不向开发人员工具控制台报告任何错误。但是:它仍然会写日志,工作得很好,页面上的非扩展脚本仍然会报告它们的错误。
我见过一些单词,说明扩展的错误可以显示在popup.html的DevTools窗口中,但是我的扩展没有(也不能通过设计,它用于解析其他页面)使用那个popup.html在所有。
最糟糕的是甚至没有显示扩展名的语法错误(!)。我会是无限的,永远感激,如果你能给我这个问题的解决方案,因为它是在屁股巨大的痛苦调试没有语法错误通知的扩展:(
UPD:
由于它的出现,问题是,只有在一个网页我看不到的错误:在其他网页我的脚本运行在那里我可以看到console.errors()
罗布W,抱歉,但是那并不是” t回答我的问题。我可以用用console.log(),但我不能用请参阅console.error()的输出,这两个都来自脚本中的实际错误以及我自己的console.error()调用。我的脚本不使用后台脚本,只对特定网页的某些脚本,如下面的manifest.json的:
{
"manifest_version": 2,
"permissions": ["tabs", "http://*/*", "https://*/*", "file:///*/*"],
...
"content_scripts": [{
// I can see my errors here...
"matches": ["http://www.site.ru/*type=cheats*"],
"js": ["cheats.js"]
},{
// and here...
"matches": ["http://www.site.ru/bitrix/admin/iblock_element_edit.php*type=games*"],
"js": ["idb.js","data.js","framework.js","script.js","wikipic.js"],
"css":["styles.css"],
"all_frames": true
},{
"matches": ["http://www.site.ru/bitrix/admin/iblock_element_search.php*"],
"js": ["search.js"]
},{
// >>>> But not here! <<<<
"matches": ["http://www.site.ru/cheats/*"],
"js": ["keys.js", "adhocparse.js", "resumeer.js", "ground.js"],
"css": ["resumeer.css"]
}]
}
UPD 2:我试过这段代码:
console.log(console, console.log, console.error);
console.error("Error one");
throw new Error("Error two");
我有这样的输出:
Console function log() { [native code] } function error() { [native code] }
Error one
所以:console.error的作品,但所有抛出的错误(如语法错误)在某种程度上捕捉全局。这很奇怪,因为:
- 我在我的扩展中没有任何捕获;
- 页面本身仍然会产生很多错误(但它们在调用我的扩展代码之前发生)以及很多GET错误(即使在调用我的扩展代码后仍无法获取文件,但它们似乎无法捕捉,我猜)
那么,什么可以捕捉错误全球?
看来,这不是一个Chrome扩展问题,添加标签JavaScript。
欢迎堆栈溢出。这个问题早已被问到,你可以在这篇文章中找到问答:[在Chrome扩展中,从background.js中读取控制台消息的位置?](http://stackoverflow.com/questions/10257301/where-to-读控制台的消息从 - 背景-JS-IN-A - 铬 - 扩展名)。 – 2012-07-21 08:57:58
如果你在两个日志调用之间夹入一个错误调用,比如'log('foo');错误( '巴');日志( '巴兹');'?你看到两个日志,而不是错误?或者你只看到第一个日志?有可能''console.error'已被重写,或某种'try' /'catch'操作正在捕捉你的错误,从而阻止它被显示。 – apsillers 2012-07-21 21:10:03
然后只显示第一个日志,之后没有任何内容。它认为它与console.error无关,请参阅更新2。 – gvlasov 2012-07-21 21:40:19