Pregunta

Tengo una página situada en x.com. En esta página hay un botón que, cuando se hace clic, se abrirá una nueva ventana (utilizando el método window.open () de JavaScript) a una página que está situado en z.com. El emergente hace un par de cosas, a continuación, vuelve a dirigir la ventana original (el primer partido, x.com) a una página diferente en función de algunos parámetros definidos en la ventana emergente.

Esto funciona bien en Firefox / Chrome, pero no en IE. En IE (8 específicamente, pero creo que 7 también tiene este problema) de la ventana original (el primer partido) no está redirigida. En su lugar, una nueva ventana se acerca y se redirige esa ventana.

He intentado muchos métodos diferentes para tratar de conseguir que esto funcione, incluyendo el cambio de la ventana emergente para un iframe cargado en la página y tiene una función en el primer partido que la llamada emergente / iframe. El problema parece ser que IE se niega a permitir que los sitios de varios dominios a hablar unos con otros a través de JavaScript.

¿Hay una manera de evitar esto? ¿Cómo puedo obtener la ventana padre para redirigir a una página basada en parámetros en una ventana emergente o iframe?

EDIT:

Aquí hay un código de muestras:

En una página en domainA.com, tengo esto:

<img src='/images/test.png' onclick="window.open('http://www.domainB.com/item.aspx', 'name', 'width=100,height=100,menubar=no,status=no,toolbar=no');" />

En item.aspx en domainB.com tengo esto en el javascript:

opener.location.href = 'http://www.somethingelse.com/';

En Firefox / Chrome, esto funciona bien. En IE, cuando se trata de establecer domainB.com location.href el primer partido (también conocido como la ventana padre, que es domainA.com), en su lugar se abre una nueva ventana, que no es lo que quiero. Quiero que se redirija el primer partido (ventana principal) a la dirección URL que se especifica.

Bara

¿Fue útil?

Solución 2

Terminé resolverlo haciendo lo siguiente:

He añadido un iFrame a mi página principal. El marco flotante está en el mismo dominio que mi emergente. El marco flotante contiene un botón que, cuando se hace clic, se lanzará la ventana emergente.

La ventana emergente que lo hace es cosa, entonces cambia la etiqueta hash del marco flotante a algo así como #Cambiar (por lo que la URL sería www.whatever.com/iframe.aspx#change). En JavaScript del marco flotante, tengo un bucle continuo que comprueba el hash para ver si dice "cambio" y si es así, volverá a dirigir a la página principal donde quiera. Esto funciona muy bien.

Debido a que no quería que el bucle infinito en cada página, hago un cheque navegador para que esto sólo se aplica a IE. Para todos los otros navegadores sólo tiene que utilizar window.opener que funciona muy bien.

Bara

Otros consejos

Hola he resuelto mi problema haciendo lo siguiente: en lugar de utilizar window.opener.location =" ....

Uso window.opener.document.location = "url". Esto funcionó para mí.

Otra cosa es asegurarse de que son No redirigir de http a https Esto también provocar que se rompa.

Saludos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top