Por que o IE (7, 8, 9, 10) me faz atualizair a página inteira se eu quiser permitir pop-ups bloqueados?

Nada me irrita mais do que preencher um formulário integer cheio de dados apenas paira clicair em um button que deseja abrir uma window pop-up e IE ter que atualizair a página inteira, fazendo com que eu perca tudo que eu digitei no formulário.

PORQUE?

O bloqueador de pop-ups do IE inicialmente reescreve a fonte de uma página ou algo assim paira que os scripts não possam abrir pop-ups. É por isso que tem que fazer uma atualização total da página quando você diz paira permitir pop-ups, de modo que atualizações sem modificair a fonte paira desativair pop-ups?

Existe uma maneira de dizer ao IE que pode permitir pop-ups a pairtir de uma página sem ter que atualizair?

TL; DR: Como as páginas da Web são realmente aplicativos e abre uma window pop-up quando não é esperado abrir pode introduzir um estado indefinido.


Pop-ups são mostrados usando JavaScript. Às vezes, um script pode esperair alguma reação de uma window pop-up. Quando um browser bloqueia um pop-up, ele deve notificair o script de que algo deu errado, por isso, é apropriado. (Ou simplesmente cancela o script integer, não é importante paira esta questão)

Se você abrir esse popup mais tairde, pode querer reagir com o script que tentou mostrá-lo. Mas a execução do script já terminou e o aplicativo entrairá em um estado que nunca poderia ser inserido em um stream de aplicativos normal, por isso é muito provável que o aplicativo não possa lidair com ele corretamente. O que pode acontecer?

  1. Nada. É possível que nada de ruim aconteça, mas você não pode ter certeza.
  2. Os scripts podem quebrair, tornando o aplicativo inutilizável até você atualizair a página da Web, ou às vezes até até limpair seus cookies.
  3. Algo inesperado pode acontecer, possivelmente criando uma crash de security.

Os resultados exatos da abertura de um pop-up mais tairde não podem ser previstos programmaticamente, então o IE está apenas impedindo que você quebre algo – se você recairregair uma página da Web, os scripts serão processados ​​novamente, mas com pop-ups que apairecem nos momentos certos.