javascript - que - ¿Cómo puedo abrir un enlace en una pestaña nueva(y no en una ventana nueva)?
como hacer un hipervinculo en html a otra pagina (7)
Además de la opción de destino de CSS3 nueva @ anirudh4444 mencionada, no se puede y, lo más importante, probablemente no debería. Está intentando controlar la experiencia del usuario, cuando lo más probable es que le quede al usuario.
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo abrir el enlace en una nueva pestaña en html? 12 respuestas
Tengo un botón ''Abrir'' que ''calcula'' un enlace que debe abrirse en una nueva pestaña. Intento usar:
window.open(url, ''_blank'');
Pero eso abre una nueva ventana.
También probé el siguiente método:
<form id="oform" name="oform" action="" method="post" target="_blank">
</form>
...
document.getElementById("oform").action = url;
document.getElementById("oform").submit();
Aún así, se abre una nueva ventana, en lugar de una nueva pestaña.
Cuando se usa <a href...>
simple con target=''blank''
, el enlace se abre en una nueva pestaña.
¿Hay una solución?
En el caso de un enlace, sí, solo usaría la etiqueta objetivo funcionaría.
Pero en el caso de un botón, intente hacer esto con la función onclick en lugar de usar simplemente _blank
Use la función window.open (url, target) en su lugar: toma una URL y un nombre de ventana de destino, que se comporta igual que el atributo target = "something" en un enlace .... como este
button(type="button", onclick="window.open(''auth/google'', ''_blank'');")
Esto debería funcionar.
Lo siguiente funciona en Chrome:
<script>
function buildAndGo() {
var aEl = document.getElementById(''missingLink'');
aEl.href = "#" + resultOfSomeCalculation();
var e = document.createEvent(''MouseEvents'');
e.initEvent( ''click'', true, true );
aEl.dispatchEvent(e);
}
</script>
...
<button onclick="buildAndGo()">Do it</button>
<a href="#" id="missingLink" target="_blank" style="visibility: hidden;"></a>
Trabajando desde las siguientes fuentes para intentar que funcione una versión de IE: Selenium BrowserBot , YUI User Action
Pude resolver este problema usando un elemento "formulario".
function openNewTab(link) {
var frm = $(''<form method="get" action="'' + link + ''" target="_blank"></form>'')
$("body").append(frm);
frm.submit().remove();
}
Para una implementación completa y detalles, visite mi publicación http://mukesh.in/force-open-new-tab-in-browsers-instead-of-windows/
O vea este JSFiddle
Puede usar cualquiera de los siguientes, los probé todos en 6 navegadores diferentes. (Google Chrome, Mozilla Firefox, Microsoft Internet Explorer, Opera, K-meleon * y Seamonkey).
-
<a href="blaah" target="_blank">Blaah</a>
-
<a href="blaah" target="_tab">Blaah</a>
-
<a href="blaah" target="_new">Blaah</a>
Todos funcionan exactamente igual, y la elección depende completamente de la preferencia.
* K-meleon, por alguna razón, acaba de abrir la página en la que estaba cuando hice clic en el enlace.
Su formulario tiene target = "_ blank" (incluido un guion bajo) mientras que su enlace simple tiene el target = ''blank'' sin el subrayado inicial. El "_blank" es una palabra reservada que especifica una acción en particular, pero "en blanco" es el nombre de una ventana específica, posiblemente nueva. Es por eso que estás obteniendo resultados diferentes. Ambos son pop-ups, pero de diferentes tipos.
Cada usuario tiene el control final sobre si una ventana emergente debería abrir una nueva ventana o una nueva pestaña. No hay nada que puedas hacer al respecto.
CSS3 admite "abrir en una pestaña nueva", por la propiedad target-new
target-new: window | tab | none;
Actualización [2016]: este método nunca llegó a la especificación CSS3, como indica uno de los comentarios. Esto no debe ser usado. Sin embargo, se puede ver que la mayoría de los navegadores modernos abren enlaces target=''_blank''
en una nueva pestaña de todos modos, a menos que uno intente cambiar el tamaño de la nueva pestaña inmediatamente después. Sin embargo, no parece haber un mecanismo para forzar este comportamiento en las especificaciones.
[2011] Para un método de forzar la apertura en una nueva pestaña que está bien soportada, intente lo siguiente:
<a href="some url" target="_newtab">content of the anchor</a>
De lo contrario, use this método para cambiar el tamaño de la ventana de inmediato, para asegurarse de que los bloqueadores de ventanas emergentes no maten a su ventana emergente