Tôi muốn phát hiện khi người dùng rời khỏi trang của tôi (ví dụ: mở tab mới) để tôi có thể dừng đếm ngược. Tôi đã làm nó sử dụng:
$(window).blur(function() {
//stop countdown
});
Nhưng tôi có Iframe bên trong trang của tôi và đếm ngược cũng dừng lại khi người dùng nhấp vào nó, nhưng tôi không muốn sự kiện trên để thực hiện khi ai đó nhấp vào Iframe.
Bất kỳ ý tưởng nào?
Update, tôi đang cố gắng hơn một chút, dựa trên câu trả lời này Click-event on iframe?:
iframeDoc = $('iframe').contents().get(0);
$(iframeDoc).click(function(){
//maybe remove blur event?
});
Cập nhật: giải pháp Tim B làm việc:
$(window).blur(function() {
// check focus
if ($('iframe').is(':focus')) {
// dont stop countdown
}
else {
// stop countdown
}
});
Bây giờ tôi phải loại bỏ tập trung từ Khung nội tuyến mỗi lần sự kiện mờ được gọi, nếu không thì đếm ngược sẽ không dừng nếu người dùng thay đổi tab sau khi tập trung vào khung nội tuyến. Tôi đã thử cách sử dụng điều này ở trên:
if ($('iframe').is(':focus')) {
// dont stop countdown
$("iframe").blur()
$(window).focus();
}
Nhưng nó không hoạt động. Bất kỳ ý tưởng?
Nội dung trong iframe của bạn là gì? –
Trang web bên ngoài. – Jirico
tôi giải quyết một vấn đề rất giống như của bạn Xem câu trả lời của tôi tại http://stackoverflow.com/questions/9880193/how-can-i-capture-the-blur-and-focus-of-the -entire-browser-window/17603566 # 17603566 –