javascript window.location en nueva pestaña


124

Estoy desviando al usuario a alguna URL, window.locationpero esta URL se abre en la misma pestaña del navegador. Quiero que esté abierto en una pestaña nueva. ¿Puedo hacerlo con window.location? ¿Existe otra forma de realizar esta acción?



¿Es window.locationun requisito? ¿O se pueden ofrecer otras soluciones JS?
Khez

@Khez: se pueden ofrecer otros JS.
Muhammad Imran Tariq

Respuestas:


28

No creo que haya una forma de hacer esto, a menos que esté escribiendo una extensión de navegador. Puede intentar usar window.openy esperar que el usuario tenga su navegador configurado para abrir nuevas ventanas en nuevas pestañas.


442
window.open('https://support.wwf.org.uk', '_blank');

El segundo parámetro es lo que hace que se abra en una nueva ventana. No olvide leer el artículo informativo de Jakob Nielsen :)


10
pero ¿qué pasa si su navegador ha bloqueado la configuración en la ventana emergente? esto no funcionará.
pregmatch

@Alex meh ... no es realmente la respuesta "correcta". Al intentar esto en Firefox, donde evito las ventanas emergentes, este código falla.
TARKUS

Trabajé desde mi marcador en Edge 84.
Ryan Rodemoyer

14

Esto me funciona en Chrome 53. No lo he probado en ningún otro lugar:

function navigate(href, newTab) {
   var a = document.createElement('a');
   a.href = href;
   if (newTab) {
      a.setAttribute('target', '_blank');
   }
   a.click();
}

6

con jQuery es aún más fácil y también funciona en Chrome

$('#your-button').on('click', function(){
       $('<a href="https://www.some-page.com" target="blank"></a>')[0].click();    
})

6

Incluso puedes usar

window.open('https://support.wwf.org.uk', "_blank") || window.location.replace('https://support.wwf.org.uk');

Esto lo abrirá en la misma pestaña si la ventana emergente está bloqueada.


Increíble lógica OR
Hammad Sajid

1
¡Gracias! Esto funcionó muy bien.
thenomadicmann

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.