jQuery - фокус окна, события размытия не запускаются - работает в Firefox и Chrome
В двух словах; Я написал упрощенное приложение чата для приятеля и меня, чтобы использовать. Когда окно, в котором запущено приложение, не имеет фокуса (свернуто или позади других окон) и появляется сообщение, я хочу изменить строку заголовка окна, чтобы она служила предупреждением. Точно так же, как приложение чата Google делает в GMail.
Все работает безупречно в Firefox и Chrome, но не в IE7 (не проверял 8).
Это код, который я использую, чтобы определить, имеет ли окно фокус. Может ли это быть написано по-другому, чтобы также работать в IE? Кроме того, я открыт для любых других подходов для достижения того же. Спасибо заранее.
$(window).bind("blur", function() {
hasfocus = false;
});
$(window).bind("focus", function() {
hasfocus = true;
});
3 ответа
Я не думаю, что Google Chat использует окно, чтобы проверить фокус. Он использует текстовое поле пользователя, общающегося с вами. Как только текстовое поле получает фокус " Says..." перестает зацикливаться.
Возможно, вы захотите проверить движения мыши, чтобы увидеть, если окно имеет фокус. Кроме этого, я все еще пытаюсь выяснить, как проверить окно для фокуса при попытке сохранить страницу активной.
Этот фрагмент jquery будет работать в IE и во всех хороших браузерах (chrome, ff и т. Д.). Ключ документа focusin\focusout для поддержки IE.
$(function(){
$(window).bind('blur', function(){
console.debug('window blur');
});
$(window).bind('focus', function(){
console.debug('window focus');
});
// IE EVENTS
$(document).bind('focusout', function(){
alert('document focusout');
});
$(document).bind('focusin', function(){
alert('document focusin');
});
});
Что произойдет, если вы попытаетесь привязать элемент документа?