2011-08-08 25 views
5

tôi đã xem xét điều này:Xác định xem tab trình duyệt có đang hoạt động không? - I E?

How to tell if browser/tab is active

và:

Is there a reliable way to determine if a browser tab or window is inactive or not in focus?

Các liên kết đầu tiên cung cấp một giải pháp cho các trình duyệt hiện đại nhưng không làm việc trong IE7/8. Cả hai câu hỏi này đều khá cũ. Có một giải pháp cho vấn đề xác định xem khách truy cập đang xem tab đang mở của họ hay không?

Khá nhiều thứ tôi đã thử hoạt động tốt trong Chrome. Nhưng IE7 chỉ thất bại.

Tôi chỉ muốn đặt biến toàn cầu cho biết liệu trang có đang được xem hay không.

ví dụ:

var isActive = true; 

$(window).focus(function() { 
    isActive = true; 
}); 

$(window).blur(function() { 
    isActive = false; 
}); 

// test 
setInterval(function() { 
    console.log(window.isActive ? 'active' : 'inactive'); 
}, 1000); 

Trả lời

7

Sau nhiều Googling ... sau đó một số chi tiết ... sau đó thêm một số ... 4 giờ hoặc lâu hơn sau Cuối cùng tôi đã tìm thấy liên kết này bị ẩn ở độ sâu của internet. Các ý kiến ​​cho thấy một lỗi nhỏ tồn tại nhưng nó là tốt cho những gì tôi cần nó cho.

http://www.thefutureoftheweb.com/blog/detect-browser-window-focus

var isActive = true; 
function onBlur() { 
    isActive = false; 
}; 
function onFocus(){ 
    isActive = true; 
}; 

if (/*@[email protected]*/false) { // check for Internet Explorer 
    document.onfocusin = onFocus; 
    document.onfocusout = onBlur; 
} else { 
    window.onfocus = onFocus; 
    window.onblur = onBlur; 
} 
1

Hơi khác nhau nhưng this was marked as the answer cho thấy nó làm việc và nó là một sự chậm trễ đó là cần thiết. Không phải rất thanh lịch nhưng nếu nó hoạt động.

+0

Có lẽ câu hỏi của tôi ở chưa rõ ràng. Tôi không cố gắng mở một cửa sổ khác. Tôi chỉ muốn tạm dừng các sự kiện khi trình duyệt không xem tab. Sau đó tiếp tục lại khi họ quay lại tab – JasonS

Các vấn đề liên quan