我遇到了一个让我完全疯狂的问题。
我的Chrome扩展程序不向开发人员工具控制台报告任何错误。但是:它仍然会写日志,工作得很好,页面上的非扩展脚本仍会报告错误。
我看过一些关于扩展错误可以在popup.html的DevTools窗口中显示的文字,但是我的扩展没有(并且不能通过设计,它是用于解析其他页面)使用popup.html所有
最糟糕的是,甚至没有显示扩展的语法错误(!)。如果你可以给我解决这个问题的解决方案,那将是无限和永远的感激,因为在调试没有语法错误通知的扩展时,这是一个巨大的痛苦:(
UPD:
看起来,问题是只有在一个页面上我看不到错误:在我运行脚本的其他页面上,我可以看到console.errors()。
Rob W,对不起,但这不能回答我的问题。我可以使用console.log(),但我不能看到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有效,但所有引发的错误(例如语法错误)都以某种方式被全局捕获。这很奇怪,因为:
那么什么可以在全球范围内发现错误?
这似乎不是Chrome扩展程序问题,添加了标记javascript。
答案 0 :(得分:0)
在网站上我想编写扩展名,因为这段代码导致了这种行为:
window.onerror
function stopError(){return true;}