Pregunta

Estoy tratando de "forzar" Safari o IE7 para abrir una nueva página usando una nueva pestaña .

Programáticamente me refiero a algo como:

window.open('page.html','newtaborsomething');
¿Fue útil?

Solución

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.

Otros consejos

Puede, en Firefox funciona, agregar el atributo target = " _newtab " al ancla para forzar la apertura de una nueva pestaña.

<a href="some url" target="_newtab">content of the anchor</a>

En javascript puedes usar

window.open('page.html','_newtab');

Dicho eso, estoy parcialmente de acuerdo con Sam. No debe obligar al usuario a abrir nuevas páginas o una nueva pestaña sin mostrarles una pista sobre lo que sucederá antes de hacer clic en el enlace.

Avísame si también funciona en otro navegador (no tengo la oportunidad de probarlo en otro navegador que no sea Firefox en este momento).

Editar: referencia agregada para ie7 Quizás este enlace pueda ser útil
http: // social. msdn.microsoft.com/forums/en-US/ieextensiondevelopment/thread/951b04e4-db0d-4789-ac51-82599dc60405/

Aquellos de ustedes que intentan usar lo siguiente:

window.open('page.html', '_newtab');

realmente debería mirar el método window.open.

Todo lo que está haciendo es decirle al navegador que abra una nueva ventana NOMBRADA " _newtab " y cargue page.html en él. Cada página nueva que cargue se cargará en esa ventana. Sin embargo, si un usuario tiene su navegador configurado para abrir nuevas páginas en nuevas pestañas en lugar de nuevas ventanas, se abrirá una pestaña. De todos modos, está usando el mismo nombre para la ventana o pestaña.

Si desea que se abran diferentes páginas en diferentes ventanas o pestañas, deberá cambiar el NOMBRE de la nueva ventana / pestaña a algo diferente como:

window.open('page2.html', '_newtab2');

Por supuesto, el nombre de la nueva ventana / pestaña podría ser cualquier nombre como página1, página2, página3, etc. en lugar de _newtab2.

Depende del usuario si desea usar nuevas pestañas o nuevas ventanas, no es asunto del desarrollador modificar este comportamiento. No creo que puedas hacerlo.

Mascota mía - Odio cuando los sitios me obligan a abrir en una nueva ventana / pestaña - Soy bastante capaz de tomar esa decisión por mí mismo. Particularmente cuando lo hacen en javascript, eso es realmente inútil.

¿Ya lo has intentado?

var open_link = window.open('','_blank');
open_link.location="somepage.html";

Lo descubrí en Chrome,

window.open('page.html','_newtab')

solo funcionará una vez.

Puedes usar:

window.open(ct.getNewHref(),'_newtab' + Math.floor(Math.random()*999999));

Para abrir varias pestañas nuevas.

El código que uso con jQuery:

$("a.btn_external").click(function() {
    url_to_open = $(this).attr("href");
    window.open(url_to_open, '_blank');
    return false;
});

Esto es útil para distinguir entre los eventos de clic de un padre en un hijo. Al utilizar este método, no se activa el evento de clic de los padres.

Si quisieras, podrías usar este método, que es un poco hacky, pero ofrecería la funcionalidad deseada:

jQuery('<a/>', {
    id: 'foo',
    href: 'http://google.com',
    title: 'Become a Googler',
    rel: 'external',
    text: 'Go to Google!',
    target:'_blank',
    style:'display:none;'
}).appendTo('#mySelector');

$('#foo').click()

Esto funciona al 100%

window.open ('http://www.google.com/','_newtab' + Date.now ());

Esto puede funcionar si puede llamar a un archivo por lotes (yo uso php con XP sp2 e IE8 ... puedes probar IE7, no sé). Use lo siguiente (o similar) en su archivo .bat para abrir Windows: Comience " C: \ Progra ~ 1 \ Intern ~ 1 \ iexplore " http: //www.site.com" ;. No hay espacio entre las comillas y C: \ Progr ... etc. En algún momento, esto puede comenzar a abrir nuevas ventanas (es decir, target = " _blank ") en lugar de nuevas pestañas, pero funciona hasta cierto punto ; No ampliamente probado. Para usar esto en un archivo por lotes normal (CMD.exe), probablemente necesite tener una ventana abierta. Solo compartí algo con lo que me tropecé. EDITADO para aclaraciones.

<a href="http://www.google.com/" target="_self">New Tab Example</a>

Funciona en IE7.

Saludos,

Glenn

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top