Artículos
jQuery

Cambiar el target de los enlaces con jQuery

10/Jun/2010

Una de las cosas más potentes que nos ofrece jQuery es la de poder modificar el contenido del DOM de la página con Javascript que no sea intrusivo. Así, podemos hacer cosas de optimización del código generado. Entre otras cosas, porque hay veces que el código/contenido no es generado por nosotros directamente, si no por terceros.

En este caso, la idea es revisar el código para chequear que los enlaces externos tienen un target blank. Es decir, una estructura del siguiente tipo:

Manual Web

Por cuestiones de accesibilidad os recomiendo que intentéis no utilizar el target blank. Ya que haréis que se pierda el foco de la ventana. Es por ello que este código podemos utilizarlo para los dos casos: poner un blank en los enlaces externos o bien, eliminar todos los blank. Mucho mejor la segunda opción. :-)

Pero pongámonos manos a la obra. Parto de la base de que os habéis leido, o al menos echado un vistazo, al artículo de inicialización en jQuery llamado Hola Mundo con jQuery.

La primera idea es acceder a los elementos HTML que representan el enlace. Es decir, a los anchor (A). Esto lo conseguimos directamente con la función $.

$(a)

Si bien, nos interesan aquellos que empiecen por «http» y que el dominio de inicio no sea el nuestro (en mi caso «lineadecodigo»). Así la expresión de selección sería la siguiente:

$("a[href^='http']")
  .not("a[href^='http:\/\/lineadecodigo']")

Si quieres que sean varios dominios, puedes concatenarlos dentro del selector .not(). El selector ..not() es el que hemos utilizado para eliminar del filtro los enlaces de nuestro dominio.

$("a[href^='http']")
  .not("a[href^='http:\/\/lineadecodigo'],a[href^='http:\/\/www.manualweb']")

Una vez que tenemos el selector que nos localiza los enlaces que nos interesa, ahora lo que tenemos que hacer es utilizar es .attr(), la cual nos permite a añadir un atributo. En nuestro caso target=»_blank». Así el código quedaría de la siguiente forma:

$("a[href^='http']")
  .not("a[href^='http:\/\/lineadecodigo'],a[href^='http:\/\/www.manualweb']")
  .attr({target: "_blank"});

Espero que el código os sea de ayuda.

Vía: 10REM

Código Fuente

Descárgate el código fuente de Cambiar el target de los enlaces con jQuery
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Suscribir
Notificar de
guest
9 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios