6

これはかなり複雑な質問で、現在利用可能なものでは単純に不可能かもしれませんが、簡単に実行できる方法があれば、非常に大きなものになるでしょう。

Chrome で JavaScript をデバッグしていますが、これは非常にイベント駆動型であるため、ブレークポイントではなく、コードのトレース レポート (何が呼び出されたかなど) を取得することを好みます。そのため、ブレークポイントを離れるたびに、ローカル関数の名前と引数を確認したいと思います。

私が得ることができる最も近いものは、次のように条件付きブレークポイントをドロップすることです:

サンプルトレース

このアプローチには 2 つの大きな問題があります。

  1. これを各ブレークポイントに貼り付けるのは面倒です。各ブレークポイントのデフォルト アクションとして選択できれば、人々はそれを使用する可能性がはるかに高くなります。
  2. Google Chrome では、ログ呼び出しが 2 回発生します。

これらの問題のいずれかを克服する方法についてのアイデアはありますか? IEと VSで可能かもしれないと思いますが、UI も同様に扱いにくいようです。

4

3 に答える 3

3

IE11 には、Visual Studio から独立した「トレースポイント」が追加されました。彼らは、あなたが 3 年前に要求したことを正確に実行します。Chrome やその他のブラウザではまだ見られませんが、すぐに普及することを願っています!

于 2015-03-25T21:32:02.373 に答える
1

私が見つけた最良のオプションは、ChromeのJavascriptパネルでjavascriptコードを編集し、console.logを追加することでした。

これは、ページがロードされた後にのみ機能し(更新後にブレークポイントを設定してからログ行を追加する余裕がない限り)、(さらに悪いことに)ページをリロードするたびに実行する必要があります。

あなたの検索で頑張ってください!

于 2012-04-10T15:04:20.880 に答える
0

これを行うための何かが見つからなかったので、自分で作成しました。

これで、console.log呼び出しを絶えず挿入および削除する代わりに、ログインしたままにして、必要な場合にのみ監視します。

警告:以下の特定のコードはテストされていません。

var debug = TraceJS.GetLogger("debug", "mousemove");
$('div').mousemove(function(evt) {
     debug(this.id, evt);
});

マウスをDIVの上に移動するたびに、["mousemove"、{その要素のID}]というタグの付いたログイベントが生成されます。

楽しい部分は、イベントを選択的に見ることができることです。要素#aのmousemoveイベントのみを表示する場合は、コンソールで次を呼び出します。

TraceJS('a');

すべてのmousemoveイベントを確認したい場合は、次のように呼び出すことができます。

TraceJS('mousemove');

フィルタに一致するイベントのみが表示されます。TraceJS(引数なし)を呼び出すと、ログ呼び出しは表示されなくなります。

于 2012-05-05T23:11:49.380 に答える