私は Google Chrome 拡張機能を作成しており、40 年前に行っていた種類のコーディングから、HTML、CSS、および Javascript でのコーディングに移行しようとしています。これは大きな学習曲線ですが、コンソールのログ記録が少しあれば大いに役立ちます。(古い鉄心メモリの Sperry Univacs に緑色の蛍光体ディスプレイがあったことを覚えている人はいますか? 今では、何が起こっているかを知らせるコンソールがありました。テープをマウントするか、ディスクパックを交換するか、プリンターに用紙を追加します。) しかし、余談になります。 .
ほんの数日前、次のようにコンテンツ スクリプトまたはバックグラウンド ページから Google Chrome DOM Inspector コンソール ログにメッセージを送信できました。
console.log="コンテンツ スクリプト PEEK.JS からの要求を受け取りました";
後でそのコードが挿入されたページを調べると、コンソールにまったく同じメッセージが表示されます。その行が 4 回実行された場合、そのメッセージの 4 つのインスタンスがコンソールに順番に表示されます。シンプルだけど美しかった。
これで、「console.log」と入力しない限り、コンソールには何も表示されません。この場合、メッセージの最後のインスタンスのみが表示されます。ここで何が問題なのですか?デバッガーで何かをオフにしましたか? コードを間違って書いていますか?「console.log("Message Here");」- (これは常にエラーを返します) ?
私は文字通り何時間もかけてこの質問の答えを見つけようとしましたが、この質問は非常に単純であるため、十分な教育を受けた子供でも答えられるとしか思えません。別の方法は、暗示または警告メッセージからバグを見つけるために、より多くの時間を費やすことです。デバッグのためにインスペクターを効果的に使用する方法を学ぶことに何時間も費やしたほうがよいでしょう。
たとえば、昨日、バックグラウンドでコンテンツから各アイテムを連続して要求するのではなく、配列をコンテンツからバックグラウンドに渡すように、以前は機能していたコードを再構築した後、予想どおり、拡張機能が壊れました。コンソールには、「タブの executeScript 中のエラー: 不明なエラー」という 1 つのエラー メッセージが表示されます。同じ行の右端に「chrome/ExtensionProcessBindings:95」というリンクがあります。明らかに、エラーメッセージはほとんど役に立ちません。リンクをクリックするとリソース パネルが表示され、右側に "background.html" という単語が表示された空白のフレームが表示されます。これも役に立たないようです。
この情報はどのように役立ちますか? 変数定義をコード内の別の場所に移動したため、executeScript 行が実行された時点で定義されていなかったことを理解するのに、さらに 6 時間かかりました。executeScript でパラメーターが定義されていないというエラー メッセージが表示されていれば、約 10 分で見つけることができたはずです。
元の質問に戻ります-私は簡単な答えが欲しいです-関数を書くように言わないでください。関数を何も記述せずに、2 日前に欲しかったものをコンソールに表示しているのを見ました。