2009-12-02 21 views
15

¿Cómo puedo hacer esto?Objetivo = '_ blank' para mostrar en una ventana nueva, ¿NO es posible una nueva pestaña?

en Firefox el enlace se abre en una nueva pestaña ... no desea que los usuarios tienen que establecer la configuración de sus navegadores de este ...

Quiero una ventana emergente que aparezca con contacto- formulario cada vez que el usuario haga clic en 'contacto' en mi página principal.

¿Cómo debo hacer esto?

+11

realmente se debe reconsiderar. El usuario debe tener el control de su entorno. http://www.joelonsoftware.com/uibook/fog0000000249.html – soulmerge

+1

Solo puedo hablar por mí mismo, pero: los sitios que abren ventanas emergentes para cualquier cosa obtienen automáticamente puntos deducidos en mi libro. Si realmente desea un nuevo diálogo, tal vez un Diálogo de JavaScript, modal o no, ¿es más fácil de usar? Por ejemplo, el cuadro de diálogo de jQuery UI: http://jqueryui.com/demos/dialog/#default –

Respuesta

27

No puede controlar esto; es enteramente a discreción del usuario-agente; cual es el punto, después de todo. Todo lo que puede especificar es que la página se abra en un contexto de panel de visualización diferente, y le corresponde al usuario decidir cómo quiere que su ventana ocupe su espacio de pantalla/lista de barra de tareas/atajos Alt-Tab etc.

In De hecho, iría más lejos y diría que, si es posible, debe evitar abrir una nueva pestaña/ventana. Sé que me molesta un poco cuando los sitios web hacen esto, y se siente un poco torpe y de los 90 que con todo el Ajax y divs flotantes y la magia que tenemos hoy en día.

+2

Es necesario para flujos como OAuth.Y parece que otros han logrado esta hazaña. – Cunning

3

Creo que esta es una configuración solo de navegador que no se puede establecer desde HTML o Javascript.

+1

y no debería ser. – Broam

+2

No se puede establecer, pero Javascript PUEDE abrir una nueva ventana como señaló @Mark Byers. – adamdport

11
<a href="javascript:window.open('http://example.com/popup.html','blank')">Contact</a> 
+0

Creo que quieres decir window.open. –

+2

Y '_blank'. Y 'void', de lo contrario, la referencia de la ventana' toString' reemplazará el documento actual. Y todavía no funciona (se abrirá en una nueva ventana si así es como está configurado el navegador). E inaccesible debido al uso innecesario de las URL de 'javascript: '(nunca las use). – bobince

+0

Ciertamente no creo que debas hacer esto, pero puedes. Las URL javascript inaccesibles es un problema que se puede resolver fácilmente modificando el documento onLoad. –

-8

No puede especificar que un enlace se abra en una nueva pestaña. ¡Recuerde que no todos los navegadores admiten pestañas!

+4

Pero eso no es lo que él preguntó. –

14

esto está funcionando bien

window.open(yoururl, "Popup", "location,status,scrollbars,resizable,width=800, height=800"); 

Para ver todos los parámetros window.open

+1

Esto debería tener más votos ascendentes .. Si bien, en última instancia, depende del navegador, usar esto indica al navegador que se supone que es una ventana emergente. –

+0

¿Cómo funciona esta tarifa contra un bloqueador de pop-ups? –

+0

Estoy de acuerdo con John: la respuesta de Kiran es OK. El window.open básico no funciona: Firefox (por ejemplo) se abre en una nueva pestaña. Pero el método de Kiran es correcto. – Peter

0

Si desea utilizar esta cosa utilizando código Detrás entonces también funcionará ...

protected void lnkAddNewWorkout_Click(object sender, EventArgs e) 
    { 
    // Response.Write("<script>window.open('MyCreatedWorkout.aspx','_blank');</script>"); //it Open in new tab 

    ResponseHelper.Redirect("MyCreatedWorkout.aspx", "_blank", "menubar=0,width=700,height=700"); 

    } 



public static class ResponseHelper 
    { 
     public static void Redirect(string url, string target, string windowFeatures) 
     { 
      HttpContext context = HttpContext.Current; 
     if ((String.IsNullOrEmpty(target) || 
      target.Equals("_self", StringComparison.OrdinalIgnoreCase)) && 
      String.IsNullOrEmpty(windowFeatures)) 
     { 

      context.Response.Redirect(url); 
     } 
     else 
     { 
      Page page = (Page)context.Handler; 
      if (page == null) 
      { 
       throw new InvalidOperationException(
        "Cannot redirect to new window outside Page context."); 
      } 
      url = page.ResolveClientUrl(url); 

      string script; 
      if (!String.IsNullOrEmpty(windowFeatures)) 
      { 
       script = @"window.open(""{0}"", ""{1}"", ""{2}"");"; 
      } 
      else 
      { 
       script = @"window.open(""{0}"", ""{1}"");"; 
      } 

      script = String.Format(script, url, target, windowFeatures); 
      ScriptManager.RegisterStartupScript(page, 
       typeof(Page), 
       "Redirect", 
       script, 
       true); 
     } 
    } 
} 

refrenced Por: http://www.codeproject.com/Tips/317410/Response-Redirect-into-a-new-window

0

No puede controlar esta.

Pero puede intentar abrir en una nueva ventana y luego mostrar una solución alternativa si el navegador rechaza el intento.

Puede lograr esto comprobando el valor de retorno de window.open().

var win = window.open(strUrl, strWindowName); 
if (!win) { 
    // Call failed. Handle it here. 
    // You can for example open content in a model or show a button that 
    // will open content in a new tab 
} 

window.open documentación: https://developer.mozilla.org/en-US/docs/Web/API/Window/open

0

mejor manera de abrir una nueva ventana en HTML.

<a href="#" onclick="MM_openBrWindow('http://www.google.com','','resizable=yes,width=800,height=600')"> Google</a> 

<script> 
function MM_openBrWindow(theURL,winName,features) { //v2.0 
    window.open(theURL,winName,features); 
} 
</script> 
+0

La pregunta es específicamente sobre forzar una nueva ventana para abrir en lugar de una pestaña, y como el [artículo de MDN] (https://developer.mozilla.org/en-US/docs/Web/API/Window/open #Usability_issues) para window.open() indica que es poco probable que el comportamiento sea el deseado en un navegador moderno, aunque este sería aparentemente el JS más sencillo para abrir una ventana. – Jmills

0

Este es también camino fácil, pero no es visible enlace es apropiado para la acción botón

<a onclick="window.open('print.html', 'newwindow', 'width=300,height=250');"> Print</a> 
Cuestiones relacionadas