手動テストだけでJavaScriptエラーを見つけるのに問題があるASP.NETサイトを実行しています。
クライアントサイドですべてのJavaScriptエラーをキャッチし、サーバー、つまりEventLogに記録する可能性はありますか(Webサービスなどを介して)?
onerror event の独自のハンドラーを設定して、XMLHttpRequestを使用してサーバーに何が問題なのかを伝えることができますが、仕様の一部ではないため、 サポートは多少不安定です 。
XMLHttpRequestを使用してJavaScriptエラーを記録する の例を次に示します。
window.onerror = function(msg, url, line)
{
var req = new XMLHttpRequest();
var params = "msg=" + encodeURIComponent(msg) + '&url=' + encodeURIComponent(url) + "&line=" + line;
req.open("POST", "/scripts/logerror.php");
req.send(params);
};
短い答え:はい、可能です。
長めの答え:人々は、独自のコードを書くことでこの問題を(少なくとも部分的に)解決する方法についてすでに書いています。ただし、多くのブラウザでJSコードが必要であることを確認しているように見えるサービスがあることに注意してください。私は次を見つけました:
まだ試していないので、これらのサービスについては話すことができません。
作業中のプロジェクトでjavascriptエラーのサーバー側エラーロギングを実装しました。 jQuery を使用したレガシーコードと新しいコードが混在しています。
window.onerror
の組み合わせを使用し、jQueryイベントハンドラーとonready関数をエラー処理関数でラップします( JavaScriptエラートラッキング:window.onerrorが不十分な理由 を参照)。
window.onerror
:IE(およびFirefoxのほとんどのエラー)ですべてのエラーをキャッチしますが、SafariおよびOperaでは何もしません。エラーをキャッチしたら、いくつかの追加プロパティ(URL、ブラウザなど)を追加し、ajax呼び出しを使用してサーバーにポストバックします。
サーバーには、投稿された引数を取得して通常のサーバーロギングフレームワークに出力する小さなページがあります。
このコードを(jQueryプラグインとして)オープンソースにしたいと思います。誰もが興味を持っているなら私に知らせてください、それは上司を説得するのに役立ちます!
Google Analyticsを使用している場合、JavaScriptエラーをGoogle Analyticsイベントに記録できます。
このアプリを参照してください: http://siteapps.com/app/log_javascript_errors_with_ga-181
それが役に立てば幸い。
Appfail を最近使用しました。これは、asp.netとJavaScriptの両方のエラーをキャプチャします
クライアント側のエラーをサーバーに記録する場合は、何らかのサーバー処理を行う必要があります。 JavaScript(AJAX)を介してアクセスできるWebサービスを用意し、エラーログ情報を渡すことをお勧めします。
問題がWebサービスをホストしているWebサーバーにある場合、問題は100%解決されないので、クエリ文字列を介して標準ページを介して情報を送信することもできます。それは、ブラウザが画像のソースをロードしようとするため、動的に生成される画像タグを介して行われます(その後、削除されます)。ただし、クロスドメインJavaScript呼び出しをうまく回避します。誰かが画像をオフにしている場合、あなたは困っていることに注意してください;)
Try/catchからサーバーへのAjax呼び出しを潜在的に行うことができますが、おそらくそれはあなたができる最善のことです。
代わりにJavaScriptの単体テストを提案できますか?おそらく JSUnit ?
また、 Trace Tool ユーティリティを使用することをお勧めします。JavaScriptサポートが付属しているため、JSの監視に非常に便利です。