ユーザーがページを離れたとき (新しいタブを開くなど) を検出して、カウントダウンを停止できるようにしたい。私はそれを使ってそれをしました:
$(window).blur(function() {
//stop countdown
});
しかし、ページ内に Iframe があり、ユーザーがクリックするとカウントダウンも停止しますが、誰かが Iframe をクリックしたときに上記のイベントを実行したくありません。
何か案が?
更新、この回答Click-event on iframe?に基づいて、もう少し試していますか? :
iframeDoc = $('iframe').contents().get(0);
$(iframeDoc).click(function(){
//maybe remove blur event?
});
更新:Tim B ソリューションが機能しました:
$(window).blur(function () {
// check focus
if ($('iframe').is(':focus')) {
// dont stop countdown
}
else {
// stop countdown
}
});
これで、ぼかしイベントが呼び出されるたびに Iframe からフォーカスを削除する必要があります。そうしないと、ユーザーが Iframe にフォーカスした後にタブを変更しても、カウントダウンは停止しません。上記の条件を使用して、次のように試しました。
if ($('iframe').is(':focus')) {
// dont stop countdown
$("iframe").blur()
$(window).focus();
}
しかし、うまくいきませんでした。何か案が?