Я хочу обнаружить, когда пользователь покидает мою страницу (например, открывайте новую вкладку), поэтому я могу остановить обратный отсчет. Я сделал это с помощью:
$(window).blur(function() {
//stop countdown
});
Но у меня есть Iframe в моей странице, и отсчет времени также останавливается, когда пользователь нажимает на нее, но я не хочу выше событие, чтобы выполнить, когда кто-то нажимает на Iframe.
Любая идея?
Update, я пытаюсь немного больше, на основе этого ответа Click-event on iframe?:
iframeDoc = $('iframe').contents().get(0);
$(iframeDoc).click(function(){
//maybe remove blur event?
});
Update: решение 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();
}
Но это не сработало. Есть идеи?
Что находится в вашем iframe? –
Внешний веб-сайт dom. – Jirico
я решил проблему, очень похожую на вашу Смотрите мой ответ на http://stackoverflow.com/questions/9880193/how-can-i-capture-the-blur-and-focus-of-the -entire-browser-window/17603566 # 17603566 –