完全に頭がおかしくなるような問題に遭遇しました。
私の Chrome 拡張機能は、開発者ツール コンソールにエラーを報告しません。しかし、それでもログが書き込まれ、一般的にはうまく機能し、ページ上の非拡張スクリプトは依然としてエラーを報告します.
拡張機能のエラーが popup.html の DevTools ウィンドウに表示される可能性があるという言葉を見てきましたが、私の拡張機能はその popup.html をまったく使用しません (設計上、できません。他のページを解析するために作成されています)。
最悪なのは、拡張子の構文エラー(!)すら表示されないことです。この問題の解決策を教えていただければ、無限にそして永遠に感謝します。なぜなら、構文エラーの通知なしで拡張機能をデバッグするのは大変な苦痛だからです : (
更新:
どうやら、問題は1 つのページでのみエラーが表示されないことです。スクリプトを実行する他のページでは、console.errors() が表示されます。
ロブ W 申し訳ありませんが、それは私の質問の答えではありません。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 を追加しました。