Pergunta

Eu tenho o seguinte código JavaScript para aparecer uma janela no Internet Explorer. O código é executado a partir de uma página dentro de uma caixa de diálogo Microsoft CRM modal. (RequestID é uma cadeia que é sempre o mesmo no sistema de teste - no momento em que ele contém "abcdefg" - sem as aspas).

var cancelUrl = "CancelRequest.aspx?RequestID=" + RequestID;
alert("About to open a window.\n\n" + cancelUrl);
window.open(cancelUrl);
alert("Window opened");

Eu espero ver uma mensagem dizendo que eu estou prestes a abrir uma janela. Eu, então, esperar para ver uma janela aberta e obter outra mensagem sobre a janela ter sido aberta. Eu realmente não se preocupam com a ordem dos dois últimos eventos; os alertas estão lá, então eu sei o código foi executado.

Eu tenho dois PCs e um PC virtual. Tudo correndo IE7. Em 2003 VPC do Windows, as mensagens e pop-up aparecer cada vez sem falhar.

No Vista PC e WinXP PC, as mensagens aparecem, mas o pop-up aparece apenas de forma intermitente. (Acho que isso pode ser o caso no Vista PC também).

Todos os três têm configurações idênticas no IE. Todos têm o bloqueador de pop-up IE deficientes e não têm outros bloqueadores de pop-up instalado.

Alguém pode lançar alguma luz sobre isso?

Foi útil?

Solução

Ah, eu acho que eu entendi ... faltou na descrição ...

Você está tentando abrir um não-modal janela a partir de um modal de diálogo na IE .

Esta AFAIK, não deve trabalho.

Tente abrir outra janela modal vez.

Efetivamente você está dizendo ...

na janela A, abrir modal janela B, agora abrir non-modal janela C, que não é realmente válido.

Outras dicas

Este código é simples. Use depurador e ver o que está acontecendo.

Verifique se site com o Firefox ou o Chrome, eles têm depuradores JS.

Editar:

Adicionar try / catch bloco em torno window.open() e ver se há alguma exceção lá.

Editar 2:

Agora vejo que você está enviando personagens como RequestId. Você deve verificar se essa URL pode lidar com esse tipo de valor. Desde nome é RequestId Eu diria que há grande chance de que deve haver apenas parâmetro numérico. Se isso estiver correto, então pode acontecer que as colisões laterais servidor quando você tenta janela aberta e, em seguida, nada acontece. Razão mais para set bloco try / catch e teste.

Você pode querer tentar Firebug Lite, que irá trabalhar para o IE.

http://getfirebug.com/lite.html

O try / catch outras pessoas mencionados também é uma boa idéia. Eu acho.

Além disso, há alguma chance de que o pop-up está tentando usar uma janela que já está aberto, mas minimizado. Por isso, não parece estar funcionando, mas é realmente apenas recarregar a janela minimizada?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top