Tôi có bộ định thời javascript đang tạo yêu cầu XMLHTTP trên cơ sở không đổi (cứ 10 giây một lần). Tôi rất muốn có thể tạm dừng bộ hẹn giờ khi cửa sổ hoặc tab mất tiêu điểm.Có cách nào đáng tin cậy để xác định xem tab hoặc cửa sổ trình duyệt không hoạt động hay không tập trung?
Tôi hoàn toàn nhận thức được sự kiện onFocus
và onBlur
trên đối tượng window
, nhưng chúng không đáng tin cậy trên tất cả các trình duyệt. Ví dụ: in Safari, tabs don't trigger the events.
mã đơn giản dưới đây distills các chức năng Tôi đang tìm:
<html>
<head>
<title>Testing</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"></script>
</head>
<body>
<div id="console"></div>
<script type="text/javascript">
window.onfocus = function(event) {
$('console').insert('Window gained focus<br />');
}
window.onblur = function(event) {
$('console').insert('Window lost focus<br />');
}
</script>
</body>
</html>
Có ai ra khỏi đó có một kỹ thuật để xác định khi một cửa sổ trình duyệt hoặc tab mất/lợi nhuận tập trung mà làm việc trên trên tất cả các trình duyệt phổ biến?
theo kinh nghiệm của tôi, điều này không thể giải quyết được bằng flash. http://stackoverflow.com/questions/1099063/detecting-embedded-object-focus-in-safari – jedierikb
bản sao có thể có của [Có cách nào để phát hiện xem cửa sổ trình duyệt hiện không hoạt động không?] (http: // stackoverflow .com/questions/1060008/is-there-a-way-to-detect-if-a-browser-window-hiện không hoạt động) – rvighne