問題は、チャットのようなプログラムを作っています。ユーザーがウィンドウを離れたかどうかを知る必要があります。また、別のウィンドウやタブに変更して他のユーザーに他のユーザーが今すぐページを見ていないことを確認します。
私はウィンドウイベントのフォーカスアウトが私の問題を解決すると思っていましたが、いくつか問題があります。 最初: ユーザーがウィンドウを離れるときにのみ起動し、入力フィールドにフォーカスしてページ内の他の場所をクリックすると、イベントが発生します。明らかにそれは耐え難いことです。 私はFirefoxでそれを回避しました。 Firefoxでは、そのようなことが起こると、ブラウザはfocusoutイベントを1回発生させます。しかし、本当にウィンドウを離れると、2回発射されます。だから、少しプログラミングが魔法を作りました。
次に、第2の問題が発生しました。 Chrome、他のブラウザが同じように動作する可能性がありますが、あなたが何をするにしても、一度focusoutイベントを発生させるだけです。ウィンドウを離れて、入力からページにフォーカスを移動することは同じです。したがって、私のプログラミングはそこでは機能しませんでした。
希望の動作をシミュレートする方法を知っている人はいますか?または、ChromeなどのブラウザをFirefoxなどのように動作させる方法ですか?
ありがとうございました!
あなたがしたいことは、今日のブラウザでは実際には可能ではないと思います。 – Pointy
'$(document).bind(" mouseleave "、function(){...})'を試しましたか? – Mottie
@Pointy 'window.onblur'ハンドラはうまく動作します。ブラーイベントは、ユーザーが別のタブに切り替えるたびにウィンドウオブジェクトで発生します。 –