<a href="http://google.com">Link</a>
¿Cómo puedo abrir este enlace en una ventana emergente? Y evitar que el navegador lo bloqueeJavaScript/jQuery - Abrir enlace actual en la ventana emergente
<a href="http://google.com">Link</a>
¿Cómo puedo abrir este enlace en una ventana emergente? Y evitar que el navegador lo bloqueeJavaScript/jQuery - Abrir enlace actual en la ventana emergente
Hay "ventanas nuevas" y hay "ventanas emergentes". El uso de target=_blank
se abrirá en una nueva ventana, excepto que los navegadores modernos ponen ventanas nuevas en las nuevas pestañas de forma predeterminada. Lo cual parece que no es lo que quieres.
Para una ventana emergente real, quiere window.open()
, y asegúrese de incluir un ancho y alto específicos, de lo contrario algunos navegadores seguirán poniendo la nueva ventana en una nueva pestaña. El ejemplo de Darin me parece bien.
En cuanto a bloqueo de ventanas emergentes, el enfoque general que los navegadores opinión es que las ventanas emergentes iniciadas por acción del usuario se les permite (como hacer clic), mientras que los popups iniciaron espontáneamente a través de la escritura, como este, están bloqueados:
<script type="text/javascript">
window.open("http://www.google.com/", "Google", "width=500,height=500");
</script>
Sin embargo, el anuncio de ser una escalada de la guerra de bloqueo, nunca se puede estar seguro de que una ventana emergente se abrirá. Si su ventana emergente está bloqueada, la llamada window.open devuelve null. Así que me gustaría modificar el ejemplo de Daren así:
<a href="http://www.google.com/"
onclick="return !window.open(this.href, 'Google', 'width=500,height=500')"
target="_blank">
Si la ventana emergente es bloqueada, onclick devuelve true
, que sigue el enlace se hace clic abriéndolo en una nueva ventana o pestaña. Es una alternativa, por lo que al menos el contenido es accesible (si no es bonito).
<a href="http://google.com" onclick="window.open(this.href, 'windowName', 'width=1000, height=700, left=24, top=24, scrollbars, resizable'); return false;">Link</a>
Uno de los errores interesantes que he notado acuerdo 'window.open'. si la URL comienza con 'http: // ...', no funciona en, por ejemplo ... – Simon
Esto abrirá una nueva ventana.
<a href="http://google.com" target="_blank">Link</a>
Si está utilizando XHTML Strict, el atributo 'target' no valida y debe adjuntar un evento (como como 'onclick') en su lugar. Si está utilizando un tipo de documento más antiguo, está bien con 'target =" _ blank "'. – Andrew
@Andrew - IMO fue una decisión * absolutamente * ridícula por parte del W3C (desaprobando el 'objetivo') ... una que se ha invertido en HTML5, en caso de que alguien lo descubra más tarde. –
no ha estado siguiendo las especificaciones de HTML5 recientemente, pero las últimas revisiones sobre [W3C] (http://dev.w3.org/html5/spec/Overview.html#linkTypes) dice 'target' sigue siendo "innecesaria. Omitirlo por completo ". No estoy defendiendo esto, pero la idea es que se supone que HTML se utiliza para el diseño (que define las relaciones entre los datos de la página), CSS es para la presentación y JS es para el comportamiento. Y bajo este sistema, hacer clic en un enlace para abrir una ventana es un comportamiento. Dicho esto, las extensiones CSS de HTML5 están llenas de este tipo de violación, por lo que no veo cuál es el problema. – Andrew
jQuery:
<script>
$('#button2').live("click",function(e){
window.open("http://www.google.com", "yyyyy", "width=480,height=360,resizable=no,toolbar=no,menubar=no,location=no,status=no");
return false;
});
</script>
<a href="#" id="button2" ><img src="images/online.png"></a><br/>Online
en vivo ha quedado obsoleto en jquery 1.6 Creo, use .on ("click", function() {}); – mahatmanich
Puede probar el código de abajo,
<script type="text/javascript">
window.open(location.href, "Google", "width=500,height=500");
</script>
También debería agregar, es una buena idea que su contenido emergente no se rompa por completo si se abre en una ventana de navegador de tamaño completo, debido a este retroceso, y porque el usuario siempre puede hacer clic derecho en el enlace y "abrir en nueva pestaña o ventana "que evita por completo el controlador onClick. – jpsimons