Estoy tratando de "forzar" a Safari o IE7 a abrir una nueva página usando una nueva pestaña .
Programáticamente me refiero a algo como:
window.open('page.html','newtaborsomething');
Estoy tratando de "forzar" a Safari o IE7 a abrir una nueva página usando una nueva pestaña .
Programáticamente me refiero a algo como:
window.open('page.html','newtaborsomething');
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.
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 de lo que sucederá antes de que hagan clic en el enlace.
Avíseme 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 Tal vez 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 utilizar 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 ella. Cada nueva página 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. Independientemente, 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, tendrá que 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 page1, page2, page3, etc. en lugar de _newtab2.
Depende del usuario si quiere usar nuevas pestañas o nuevas ventanas, no es asunto del desarrollador modificar este comportamiento. No creo que puedas hacerlo.
Lo que más me molesta es que los sitios me obliguen 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 has probado como
var open_link = window.open('','_blank');
open_link.location="somepage.html";
Me enteré 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 activa el evento de clic del padre.
<a href="page.html" target="_blank">foo</a>
Esto funciona al 100%
window.open('http://www.google.com/','_newtab' + Date.now());
Si quisiera, podría usar este método, que es un poco hack, 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 puede funcionar si puede llamar a un archivo por lotes (yo uso php con XP sp2 e IE8 ... puede probar IE7, no sé). Utilice lo siguiente (o similar) en su archivo .bat para abrir Windows: Inicie "" 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. Simplemente compartiendo algo con lo que me topé. EDITADO para aclaraciones.
<a href="http://www.google.com/" target="_self">New Tab Example</a>
Funciona en IE7.
Saludos,
Glenn