2011-07-13 22 views
50

estoy usando este fragmento de código de jQuery para obtener href del enlace:jQuery: ir a la dirección URL con target = "_ blank"

var url = $(this).attr('href'); 

- y este fragmento de código para ir a ese href:

window.location = url; 

Todo es simplemente la forma que yo quiero, a excepción de la nueva página se abre en la misma ventana que la anterior, y quiero que se abra en una nueva ventana o pestaña (algo que en hTML plano habría sido logrado mediante el uso de la fórmula target = "_ blank").

Pregunta: ¿Cómo puedo abrir el href en la nueva ventana o pestaña con jQuery?

¡Gracias por tu ayuda!

Respuesta

69

Usted necesita abrir una nueva ventana:

window.open(url); 

https://developer.mozilla.org/en-US/docs/DOM/window.open

+0

Gracias. Eso es justo lo que necesitaba. Otra pregunta rápida: ¿hay alguna manera de decirle al navegador que abra una pestaña nueva en lugar de una nueva ventana? –

+1

Creo que depende de cómo esté configurado el navegador (es deciruna configuración para abrir ventanas emergentes en pestañas o ventanas). –

+0

Gracias de nuevo. –

52

uso,

var url = $(this).attr('href'); 
window.open(url, '_blank'); 

actualización: la href es mejor ser recuperado con el prop ya que volverá la URL completa y es un poco más rápido.

var url = $(this).prop('href'); 
+0

¡Gracias! ¡Esto es muy útil! –

+2

Tenga cuidado, debería ser 'var url = $ (this) .prop ('href');' –

1

Si desea crear la ventana emergente a través de jQuery, tendrá que usar un complemento. Éste parece que va a hacer lo que quiera:

http://rip747.github.com/popupwindow/

Como alternativa, siempre se puede utilizar la función de JavaScript window.open.

Tenga en cuenta que con cualquier enfoque, la nueva ventana debe abrirse en respuesta a la entrada/acción del usuario (por ejemplo, haga clic en un enlace o botón). De lo contrario, el bloqueador de ventanas emergentes del navegador simplemente bloqueará la ventana emergente.

+0

Gracias. No, no es un pop-up. Solo una ventana normal. Normalmente, simplemente dejaría que html hiciera el trabajo, pero un código anterior que uso en el mismo menú deshabilita el comportamiento predeterminado para todos los enlaces. –

7

Pregunta: ¿Cómo puedo abrir el href en la nueva ventana o pestaña con jQuery?

var url = $(this).attr('href').attr('target','_blank'); 
0

La función .ready se utiliza para insertar el atributo vez que la página ha terminado de cargar.

$(document).ready(function() { 
    $("class name or id a.your class name").attr({"target" : "_blank"}) 
}) 
0

Pruebe usar el siguiente código.

$(document).ready(function(){ 
    $("a[@href^='http']").attr('target','_blank'); 
}); 
2

Detecta si se utilizó un atributo de destino y contiene "_blank". Para los dispositivos móviles que no les gusta "_blank", esta es una alternativa confiable.

$('.someSelector').bind('touchend click', function() { 

     var url = $('a', this).prop('href'); 
     var target = $('a', this).prop('target'); 

     if(url) { 
      // # open in new window if "_blank" used 
      if(target == '_blank') { 
       window.open(url, target); 
      } else { 
       window.location = url; 
      } 
     }   
    }); 
Cuestiones relacionadas