Pregunta

Tengo una ventana emergente y en esa página Tengo el siguiente código en el cuerpo.

<a href="http://www.example.com" target="_blank" onClick="javascript:window.close()"><img src="...something"/></a>

El objetivo es tener esta ventana estrecha emergente cuando un usuario hace clic en el enlace de la imagen y de abrir una nueva página y ser dirigidas a http://www.example.com .

Funciona en IE y Chrome, pero no en Firefox. Se cierra la ventana emergente, pero no hay ninguna ventana nueva se abre.

¿Alguna idea?

¿Fue útil?

Solución

Sí, puede repro esto - interesante. setTimeout funciona en torno a él:

onClick="javascript: setTimeout(window.close, 10);"

Sólo puedo suponer que una vez que se cierra la ventana (lo que ocurre antes de que se sigue el hipervínculo) Firefox deja de procesar esa página.

Editar:. Mejor que sea de 10 ms de retardo - 1ms con Chrome no se cierra la ventana

Otros consejos

La pregunta es en realidad resuelto para el primer partido pero no ayudó a mi problema (no deseaba: las nuevas ventanas en Firefox mantienen el mismo tamaño que la ventana emergente actual).

Así que me parece siguiente solución:

function whenClicked() 
{
    window.close();
    opener.location.href = "http://www.example.com";

}

o esto si el ppage debe abrir en una nueva pestaña:

function whenClicked() 
{
    window.close();
    opener.open(http://www.example.com, '_blank');
}

Cuando se agrega algunas funciones de evento de clic de un elemento a través de JavaScript, que la funcionalidad se ejecuta antes de que el evento predeterminado clic (en este caso, la apertura de una nueva página), con el fin de permitir la posibilidad de interceptar y anulando el evento predeterminado . El comportamiento por defecto sólo se ejecutará cuando y si el evento devuelve un valor booleano verdadero.

En este caso, la funcionalidad adicional sería para cerrar la ventana y mi conjetura es que Firefox elige para interpretar esto como "todos hemos terminado", por lo que el evento click no devuelve verdadero, y por lo tanto la nueva página que nunca consigue abrirse.

sugerencia de utilizar un corto tiempo de espera que permitiría el evento click para regresar cierto antes de la ventana está cerrada, permitiendo así que la nueva ventana se abra. Evgeny

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