window.onfocus não dispara no IE7, inconsistente no Opera

Observe que isso se refere ao foco e desfoque de eventos em uma janela, não nos campos de formulário.

Estou carregando um documento em uma janela pop-up e inclui o seguinte código:

<script type="text/javascript">
window.onblur = function(){ document.title="BLURRED"; }
window.onfocus= function(){ document.title="FOCUSED"; }
</script>

Essas funções são temporárias, para teste. Eu esperava usar esses eventos para definir um sinalizador indicando o estado da janela; Estou fazendo um aplicativo de bate-papo e, se as mensagens forem recebidas quando minimizadas, farei algumas alterações no título para chamar a atenção. Se eles não cancelarem quando a janela entrar em foco, serão apenas irritantes.

Onload, eu também coloco o foco em uma área de texto. (Não tenho certeza se isso faz alguma diferença.)

O IE7 (não tenho outra versão à mão) parece reconhecer owindow.onblur mas não owindow.onfocus. O Opera 10 é absolutamente estranho.

Aqui está o que acontece nos navegadores que tenho. Eu inicio a janela pop-up clicando no link no pai, depois passo por vários ciclos de minimização-restauração clicando no botão pop-up na barra de tarefas (Windows XP):

Safari 4:

Janela aberta: o documento é aberto com o título originalMinimizar: o título é alterado para "BURRED"Restaurar: o título é alterado para "FOCO"

Era isso que eu esperava que acontecesse.

Firefox 3.5:

Janela aberta: o documento é aberto com o título original e muda para "FOCO"Minimizar: o título é alterado para "BURRED"Restaurar: o título é alterado para "FOCO"

O onfocus onload é um pouco de surpresa, mas não é um problema.

IE7:

Janela aberta: o documento é aberto com o título originalMinimizar: o título é alterado para "BURRED"Restaurar: o título não muda, não importa quantas vezes eu alterne

O que aconteceu com o onfocus?

Opera 10.5

Janela aberta: o documento é aberto com o título original, mas em outra guia, não pop-up

As vezes...

Minimizar: o título é alterado para "BURRED"Restaurar: o título é alterado para "FOCO"

As vezes...

Minimizar: o título muda para "BURRED" e depois "FOCUSED"Restaurar: o título não muda

Ok, isso é simplesmente estranho ...

Estou aberto a outras abordagens, mas eu realmente gostaria de entender o que está acontecendo aqui, em Javascript simples e antigo - entãopor favor, não dê uma resposta jQuery a menos que realmente não haja outra maneira de contornar isso.

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion