16

クライアント側で JavaScript を実行しているときにエラー (構文エラーも含む) が発生した場合に、自動フィードバックを取得する方法はありますか?

私は次のようなことを考えていました:

<script src="debugger.js"></script>
<script>
    // some script with an error in it
</script>

また、デバッガーがエラーに気付くたびに、フィードバックがサーバーに送信されます。

4

6 に答える 6

18

編集:最初はあなたの質問を誤解していましたが、これはうまくいくはずです:

また、これは、エラーを引き起こす可能性のある JavaScript よりも前に実行する必要があることに注意してください。

window.onerror = function(msg,u,l)
{
    txt ="Error: " + msg + "\n";
    txt+="URL: " + u + "\n";
    txt+="Line: " + l + "\n\n";
    //Insert AJAX call that passes data (txt) to server-side script
    return true;
};

構文エラーに関しては、運が悪いです。構文エラーが発生すると、Javascript は単純に終了します。まったく対処のしようがありません。

于 2009-02-13T18:07:09.637 に答える
9

1つの手法は、JavascriptエラーロギングにAjaxを使用することです

すべてのjavascriptエラーは、window.onerrorイベントにトラップされる可能性があります。trueまたはfalseを返すことができるので、ユーザーに通常のjavascriptエラーダイアログを表示するかどうかを選択できます。このスクリプトは、JavaScriptエラーが発生する可能性が非常に低い場合に、エラーに関する情報を収集し、JavaScriptエラーをデータベースに記録するページにhttprequestを送信します。

于 2009-02-13T18:11:35.790 に答える
4

構文エラーについてはわかりませんが、window.onerror イベントを使用して js エラーをキャッチすることは可能です。Google で「logging errors in javascript」を検索すると、多くの結果が得られます...

ASP.NET への JavaScript エラーのロギング: http://james.newtonking.com/archive/2006/05/02/Logging-JavaScript-Errors-To-ASP.NET.aspx (残念ながら、投稿内のダウンロードへのリンクは壊れています)。

クライアント側の JavaScript エラーをサーバーに記録する: http://www.codeproject.com/KB/ajax/logclientsidejserrors2srv.aspx

JavaScript エラー通知: http://www.thecodepage.com/post/JavaScript-Error-Notifications.aspx

于 2009-02-13T18:08:33.567 に答える
1

window.onerror = MyFunction(msg,url,line);

エラーの詳細、ブラウザーの種類 (つまり、navigator.userAgent) などを含むウィンドウがポップアップ表示されます。これらはすべて READONLY とマークされたフィールドに表示され、ユーザーにそれらを送信するように促されます。

セッション Cookie に保存されている [今後は表示しない] チェックボックスがあります。エラーが発生し続ける場合は、ポップアップを無効にすることができます。

これは「非常にクール」だと思っていたにもかかわらず、レポートがほとんど得られませんでした。実行時エラーがゼロに近づいているからだとは思えません。

于 2009-02-13T18:10:11.813 に答える
0

私にとって最も簡単な方法は、SiteApps Marketplace からこのアプリをインストールすることでした。

http://siteapps.com/app/log_javascript_errors_with_ga-181

プラットフォーム タグをインストールすると、多くのアプリをインストールできます。上記のアプリは私にとって非常に便利です。私が開発した 14 の Web サイトで使用しており、Google アナリティクスで JavaScript エラーを追跡できました。

これが役立つことを願っています。

レアンドロ

于 2013-04-15T21:02:45.597 に答える
0

おそらく、ページごとに 1 つのエラー レポートのみを送信するのが最善です。タイマーの繰り返しでエラーが発生した場合、または AJAX 自体が再帰的にエラーを呼び出した場合、ログが無駄なジャンクでいっぱいになる可能性があります。

また、次のような原因で発生する解決できないエラーを受け取る準備をしてください。

  • コードをいじるセキュリティプロキシ
  • ブロックされたサイトからのスクリプト
  • 拡張機能からの重要でないブラウザ クローム エラー
  • 世界最悪のブラウザ、IE Mobile
于 2009-02-13T19:04:33.120 に答える