2011-08-10 10 views
14

Estoy intentando algo parecido a continuación,IE9, Win 7 window.open() devuelve un valor nulo en lugar de referencia de la ventana abierta

var myWindow = null; 
if(!myWindow || myWindow.closed) 
{ 
    myWindow = window.open(url, windowId); 
} 
else 
{ 
    myWindow.focus(); 
} 

Todos los navegadores volver al árbitro ventana para window.open(), pero IE 9 devuelve NULL. ¿Alguien tiene más información sobre por qué se devuelve null o posiblemente una solución alternativa para IE9?

+3

justo cuando pensamos que habíamos pasado los días oscuros de IE6 ... –

+0

¿Estás seguro? Parece devolver un objeto, no nulo. – Steve

+0

Creo que devuelve 'nulo' si la ventana emergente está bloqueada, por ej. si es una ventana emergente automática. Pero si se desencadena por, digamos un clic, entonces funciona. –

Respuesta

24

window.open devuelve un objeto de referencia NULL si activar el Modo protegido se examina bajo Opciones de Internet-> Seguridad-> Nivel de seguridad para esta zona y la zona es diferente es decir, en mi caso de archivos local abriendo una ventana emergente desde la Intranet.

window.open devuelve un objeto de referencia, incluso si activar el Modo protegido se comprueba cuando se abre mysite.com someothersite.com en una ventana emergente es decir Internet-> Internet

0

En realidad, en mi caso, me estaba haciendo referencia window.open nulo si abro la URL del sitio localhost o intranet. Si mi ventana emergente contiene alguna url del sitio de Internet, entonces obtengo el objeto ventana como referencia. lo hice siguientes para resolver este:

  • Abrir IE> Herramientas> Opciones de Internet
  • Ir a la ficha Seguridad
  • habilitar modo protegido haciendo clic en la casilla de verificación
  • Reiniciar IE

Ahora , comenzó a darme una referencia de objeto de ventana para una ventana emergente abierta con sitios de Intranet. Espero que esto ayude.

Cuestiones relacionadas