Lo primero decir que para que funcione bien este código, lo debemos poner lo mas cerca del cierre de etiqueta </body> y luego buscaremos todos los elementos de nuestra web que tengan la etiqueta <a> y utilizaremos el siguiente código:
- var e = document.getElementsByTagName("a");
Ahora una vez localizados los enlaces <a> , es ahora cuando le decimos que compruebe si ese enlace pertenece a nuestro dominio, lo abra en esta misma ventana, si no, lo abra en ventana nueva, lo haremos con el siguiente código:
- if (e.href.indexOf("nuestrodominio.algo") !== -1) {
- //creado por https://joason.com
- e.setAttribute("target","_parent");
- }else{
- e.setAttribute("target","_blank");
- }
Cambiaremos "nuestrdominio.algo" por el dominio real que queramos comprobar, podéis ver que en cuanto encuentra un enlace que cumple la condicional le añade el atributo target="_parent" y si no la cumple le añade target="_blank" .
El código funciona, perfecto ya lo tenemos, pero si te das cuenta sólo cambia el primer enlace que encuentra, lo que quiere decir, que si tenemos en esa página mas de uno este código no nos valdrá, qué tenemos que hacer, sencillo, tendremos que meter este código dentro de un for para decirle que no pare de modificar enlaces mientras haya estos, el código seria:
- for(var i=0;i<e.length;i++){
- var l = e[i];
- }
En el for creamos la variable i con un valor de 0, y le estamos diciendo que si i es menor que el numero total de e (que es como hemos llamado a los enlaces) la variable i la incremente en +1 y ejecute el código insertado en el for, esto se repetirá hasta que i deje de ser menor que el número total de e .
Nos quedaría el código final de la siguiente manera:
- var e = document.getElementsByTagName("a");
- // creado por https://joason.com
- for(var i=0;i<e.length;i++){
- var l = e[i];
- if (l.href.indexOf("nuestrodominio.algo") !== -1) {
- l.setAttribute("target","_parent");
- }else{
- l.setAttribute("target","_blank");
- }
- }
Y ahora sí, podéis comprobar que ahora si que cambia todos los atributos target de todos los enlaces que hay en nuestra web. Recordar cambiar "nuestrdominio.algo" por el dominio real que queramos comprobar.
Bueno, pues eso es todo, espero que os sea útil y cualquier duda, comentar.
Un saludo.
No hay comentarios:
Publicar un comentario