2010-07-05 3 views

ответ

0

Вы должны назначить функцию window.onblur, в вашем вопросе вы проверяете только, существует ли свойство onblur. Но window.onblur не всегда корректно работает в каждом браузере. В статье Detecting focus of a browser window показано, как это установить. В вашем случае это будет примерно так:

function DTitBlur() { 
    /* change title of page to ‘name’ */ 
    setTimeout(function() { 
     DTitChange(name) 
    }, 1000); 
} 

function DTitFocus() { 
    /* set title of page to previous value */ 
} 

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

Что вы подразумеваете под тем, что не работает? Вот что вы сейчас говорите:

If there's an onblur event handler: 
    execute DTitChange once ever second. 
Else 
    document.title = dtit 

Это, вероятно, не то, что вы хотите. Попробуйте

window.onblur = function() { 
    setTimeout(function() { DTitChange(name) }, 1000); 
}; 

также убедитесь, что вы установили обработчик OnFocus, чтобы очистить таймаут, если вы хотите, чтобы остановить, когда происходит пользователь возвращается. :)

Смежные вопросы