私が今注目しているフォーカスイベントには少し問題があります。どうやら、別のブラウザのタブに切り替えてからもう一度戻ると、フォーカスが合ってしまいます。私はむしろそれが起こることはないだろう。出来ますか?ブラウザのタブを変更すると、特にGoogle Chromeのフォーカスイベントが発生することがあります。
私は今日までこれを知らなかった。 http://jsfiddle.net/MJ6qb/1/
var times = 0;
$('input').on('focus', function() {
times ++;
$(this).after('<br>Focused '+times+' times');
});
再現するには:入力にフォーカスをし、ブラウザのタブを切り替える、その後、スイッチバックここで少しデモです。 Google Chrome 19が2度発砲しています!すべてのブラウザは、タブに戻ったときにフォーカスイベントを発生させるようです。
ブラウザのタブを切り替えるときに機能が実行されるのは、ユーザーのクリックやタブの場合にのみ実行するのが理想的ですが、Chromeの問題を認識しています。私の実際のアプリで余計な不要なバックツーバックAJAXリクエスト(これは最新である必要があるオートコンプリートの結果を取得するためのものですが、キーアップイベントを使用したいとは思っていません)。
jQuery関連(私はvanilla javascriptでテストしました)と思われませんが、解決策としてjQueryを使用できます。私はこれについて何かできることはありますか?私はjQueryのone()
を使うことができると知っていますが、関数を複数回実行したいと思います。
少し無関係を試してみてください、しかし、あなたが時を検出することができるかもしれませんブラウザのタブにフォーカスが当たっているかぼやけている[this](http://stackoverflow.com/a/6184276/1028949)のようなデフォルトの動作を無効にします。 Chromeの二重火災は、私が知ることのできる[既知のバグ](http://code.google.com/p/chromium/issues/detail?id=124583)です。 – Quantastical
ああ、ありがとう、それは知られているバグであったことを認識していない、ちょうどそれがFFのものではないことを確認するために投稿する前に、Chromeでコードをテストして見つけた(私が開発した)。私は諦めて「乗る」と感じていますが、本当に面倒です。私はその答えのコードで何かできるかどうかを見ていきます。 –
発生している動作が必要です。タブを離れると、そのテキストボックスのフォーカスが外れていて、戻ってきたらもう一度フォーカスしています。別のアプリケーションに退出する場合も同じです。残念ながら、私はこれを上書きする方法を考えることはできません。 – Quantastical