En Chrome, esto se abre en una nueva pestaña:
<button onclick="window.open('newpage.html', '_blank')" />
esto se abre en una nueva ventana (pero me gustaría que esto también se abra en una nueva pestaña:
<script language="javascript">
window.open('newpage.html', '_blank');
</script>
¿Es esto factible?
javascript
window.open
Andrés
fuente
fuente
Respuestas:
No puede controlar esto directamente, porque es una opción controlada por los usuarios de Internet Explorer.
Abrir páginas usando Window.open con un nombre de ventana diferente se abrirá en una nueva ventana del navegador como una ventana emergente, O se abrirá en una nueva pestaña, si el usuario configuró el navegador para hacerlo.
EDITAR:
Una explicación más detallada:
1. En los navegadores modernos, window.open se abrirá en una nueva pestaña en lugar de una ventana emergente.
2. Puede forzar a un navegador a usar una nueva ventana ('emergente') especificando opciones en el tercer parámetro
3. Si la llamada window.open no fue parte de un evento iniciado por el usuario, se abrirá en una nueva ventana.
4. Un "evento iniciado por el usuario" no tiene la misma llamada de función, pero debe originarse en la función invocada por un clic del usuario
5. Si un evento iniciado por un usuario delega o pospone una llamada a una función (en un detector de eventos o un delegado no vinculado al evento de clic, o usando setTimeout por ejemplo), pierde su estado como "iniciado por el usuario"
6. Algunos bloqueadores de ventanas emergentes permitirán que se abran ventanas a partir de eventos iniciados por el usuario, pero no las que se abren de otro modo.
7. Si se bloquea alguna ventana emergente, a veces también se bloquearán las que normalmente permite un bloqueador (a través de eventos iniciados por el usuario). Algunos ejemplos…
Forzar que una ventana se abra en una nueva instancia del navegador, en lugar de en una nueva pestaña:
Lo siguiente calificaría como un evento iniciado por el usuario, aunque llame a otra función:
Lo siguiente no calificaría como un evento iniciado por el usuario, ya que setTimeout lo pospone:
fuente
A veces es útil forzar el uso de una pestaña, si al usuario le gusta. Como Prakash dijo anteriormente, esto a veces es dictado por el uso de un evento no iniciado por el usuario, pero hay formas de evitarlo.
Por ejemplo:
siempre abrirá "newurl" en una nueva ventana del navegador, ya que la función "siempre" no se considera iniciada por el usuario. Sin embargo, si hacemos esto:
abrimos la nueva ventana del navegador o creamos la nueva pestaña, según lo determinado por la preferencia del usuario en el botón clic que es iniciado por el usuario. Luego, simplemente configuramos la ubicación en la URL deseada después de regresar de la publicación AJAX. Voila, forzamos el uso de una pestaña si al usuario le gusta.
fuente
si lo usa
window.open(url, '_blank')
, se bloqueará (bloqueador de ventanas emergentes) en Chrome, Firefox, etc.prueba esto,
trabajando js violín para esto http://jsfiddle.net/safeeronline/70kdacL4/2/
trabajo js violín para ajax ventana abierta http://jsfiddle.net/safeeronline/70kdacL4/1/
fuente
Por el momento (Chrome 39) utilizo este código para abrir una nueva pestaña:
Por supuesto, esto puede cambiar en futuras versiones de Chrome.
Es una mala idea usar esto si no puede controlar el navegador que usan sus usuarios. Es posible que no funcione en versiones futuras o con configuraciones diferentes.
fuente
VM646 js:12 Blocked opening 'http://www.stackoverflow.com/' in a new window because the request was made in a sandboxed frame whose 'allow-popups' permission is not set.
Esto abrirá el enlace en una nueva pestaña en Chrome y Firefox, y posiblemente más navegadores que no he probado:
Básicamente abre una nueva pestaña vacía y luego establece la ubicación de esa pestaña vacía. Tenga en cuenta que es una especie de pirateo, ya que el comportamiento de la pestaña / ventana del navegador es realmente el dominio, la responsabilidad y la elección del navegador y del usuario.
La segunda línea se puede llamar en una devolución de llamada (después de haber realizado alguna solicitud AJAX, por ejemplo), pero luego el navegador no la reconocería como un evento de clic iniciado por el usuario y podría bloquear la ventana emergente.
fuente
$window
es solo la forma de usar de AngularJSwindow
. Simplemente puede usarwindow
en su lugar. Más información: docs.angularjs.org/api/ng/service/$windowMini solución clara
$('<form action="http://samedomainurl.com/" target="_blank"></form>').submit()
fuente
Puede usar este código para abrir en una nueva pestaña.
Lo obtuve de stackoverflow ..
fuente
La mejor forma que uso:
1- agregue un enlace a su html:
2- agregar función JS:
3- simplemente llame a la función OpenNewTab con el enlace que desee
fuente