tab - window.opener javascript ejemplo
javascript window.open en safari (3)
El safari tiene un silenciador bloqueador de ventanas emergentes que no se muestra cuando se bloquea un enlace.
Para comprobar si el bloqueador de elementos emergentes está activo, vaya a la configuración de safari> seguridad> algo así como bloquear ventanas emergentes.
Para cruzarlo de una manera sencilla, dado que no puedo abrir una nueva ventana, aparece una alerta que muestra una ventana emergente bloqueada.
En mi caso, utilizo entradas selectas para abrir enlaces externos:
HTML
<select id="retailer" class="windowOpen retailer-submenu">
<option value="null">Select one</option>
<option value="http://amazon.com">Amazon</option>
<option value="http://ebay.com">eBay</option>
</select>
Javascript
<script type=''text/javascript''>
$(''select.windowOpen'').change(function(){
var url = $(this).val();
var open = window.open(url);
if (open == null || typeof(open)==''undefined'')
alert("Turn off your pop-up blocker!/n/nWe try to open the following url:/n"+url);
});
</script>
El código para verificar si un pop-up está bloqueado es solo esto:
var open = window.open(''http://google.com'');
if (open == null || typeof(open)==''undefined'')
alert("Turn off your pop-up blocker!");
PD: el gatillo jquery no funcionó conmigo.
Me encontré con un problema al abrir una nueva ventana en safari (tanto en las versiones de ipad como de escritorio) que gira en torno al bloqueador de ventanas emergentes. Básicamente, he encontrado que si no se llama a window.open desde un evento de clic, safari bloqueará la ventana emergente.
El evento que está llamando a window.open actualmente se cambia de un cuadro de lista.
¿Hay alguna otra manera además de cambiar qué evento manejamos para engañar a safari y permitir una ventana emergente en este escenario? (el evento cambiado)
No creo que haya una manera de abrir una nueva ventana en el safari móvil que no sea con un clic de botón. Consulte esta Pregunta de que es similar. No estoy seguro de si funcionará, pero puede ver cómo se activa un clic de botón programáticamente utilizando la función de activación de jquery () .
También es posible que desee ver opciones de mostrar un cuadro de diálogo dentro de su propia página, tal vez usando herramientas como jquery ui.
HTH!
Puede manejar esto usando
document.location
en lugar de
window.open
Saludos, Vince