onFocus
ページ上の多数のテキスト ボックスに関連付けられた JavaScript イベントをデバッグしようとしています。このバグは、テキスト ボックスを選択してからタブで次のテキスト ボックスに移動すると発生します。onFocus
Chrome 開発者ツールを使用してイベントにブレークポイントを配置して、これをデバッグしようとしています。私が直面している問題は、テキスト ボックスを選択してブレーク ポイントがキャッチされると、Chrome 開発者ツールがフォーカスを盗んで返さないため、次のテキスト ボックスにタブで移動できないことです。誰でも回避策のアイデアがありますか? Chrome 開発者ツールを使用せずに、必要なすべての情報を出力するアラート ステートメントに頼ることができると思います......
3 に答える
Chrome Dev Tools には、インスペクターとウェブページへのオーバーレイの両方に再生/一時停止ボタンが含まれています。オーバーレイを使用すると、フォーカスがインスペクターに到達するのを防ぎます。
また、次のタイプのロギング ソリューションは、インターバル メソッドよりも追跡しやすいことがわかりました (冗長性が少なく、インターバルよりも急速に発生する変更を検出できるため)。
$('*').on('focus blur', function(event) {console.log(event.type + " to:"); console.log(document.activeElement);});
トリッキーなケースをデバッグするための 1 つのオプションは、コンソールでフォーカスをポーリングする間隔を設定することです。
setInterval(function() {console.log($(':focus')); }, 1000);
コンソールにこれを入力し (興味のある詳細が含まれるように更新します)、Enter キーを押してから、UI で何かをしている間、コンソールを見える場所に置いておきます。
そうです、Chrome DevTools はフォーカスを受け取り、デバッグされたページに戻ったときにフォーカスを復元しません。http://new.crbug.comで自由にバグを報告してください (バグが適切なチームにできるだけ早く割り当てられるように、「DevTools:」で要約を開始してください)。
余談ですが、フォーマットされた出力が可能になるため、console.log()
は よりもわずかに優れた代替手段です。alert()