Как я могу определить, что пользователь нажал на вкладку «Страница», где находится моя HTML-страница? - PullRequest
0 голосов
/ 12 августа 2010

Я разрабатываю веб-чат, и мне нужно вызвать событие, когда разговор изменился, чтобы изменить заголовок страницы, чтобы один пользователь мог знать, что другой пользователь что-то написал.

Итак, я попробовалкод:

addEvent(window,'focus',function(){ alert(1); } );

и addEvent (document, 'focus', function () {alert (2);});

, но это не работает.

Мне нужно, чтобы событие было вызвано , даже если пользователь не нажимает на веб-странице.

Для этого события у меня есть решения:

<body onclick="showClickedElement(this);" >

Есть ли какое-нибудь решение?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 12 августа 2010

Я нашел этот код, который работает для IE6, 7,8 и Firefox и не требует Jquery.

function onBlur() {
document.body.className = 'blurred';

}; function onFocus () { document.body.className = 'focus'; };

if (/ @ cc_on! @ / false) {// проверить Internet Explorer document.onfocusin = onFocus; document.onfocusout = onBlur; } еще { window.onfocus = onFocus; window.onblur = onBlur; }

источник

0 голосов
/ 12 августа 2010

взято из: http://bob.pythonmac.org/archives/2010/04/25/tab-visible-event/

var timer = null;
function tabVisible() {
    if (timer) clearInterval(timer);
    timer = null;
    window.onfocus = null;
    window.onmouseover = null;
    /* your code to dispatch event here */
}
// Firefox, IE8
window.onfocus = tabVisible;
// Safari
window.onmouseover = tabVisible;
// dirty hack for Chrome
if (navigator.userAgent.indexOf(' Chrome/') != -1) {
    function dirtyChromePoll() {
        if (window.screenX || window.screenY) tabVisible();
    }
    timer = setInterval(dirtyChromePoll, 100);
}

Если он не работает с вашим addEvent, вы можете попробовать jQuery (см. Событие, когда пользователь переключает вкладки браузера )

$(window).blur(function(e) {
    // Do Blur Actions Here
});
$(window).focus(function(e) {
    // Do Focus Actions Here
});
...