Foros del Web » Programando para Internet » Javascript »

aplicar esto a todos los enlaces y no poner esta linea uno por uno

Estas en el tema de aplicar esto a todos los enlaces y no poner esta linea uno por uno en el foro de Javascript en Foros del Web. tengo esta línea pero tengo muchos enlaces en la web, necesitaría que en vez de poner esta línea enlace por enlace, supierais crearme una función ...
  #1 (permalink)  
Antiguo 18/03/2011, 17:38
 
Fecha de Ingreso: noviembre-2010
Mensajes: 58
Antigüedad: 13 años, 5 meses
Puntos: 0
aplicar esto a todos los enlaces y no poner esta linea uno por uno

tengo esta línea pero tengo muchos enlaces en la web, necesitaría que en vez de poner esta línea enlace por enlace, supierais crearme una función javascript que los añada a todos los enlaces directamente, seguro que se hace facil pero es que no se mucho sobre este lenguaje, espero respuestas gracias.

ah por cierto, lo mas importante, esta es la línea script:

onFocus = "if (this.blur) this.blur ()"

no añadirlo enlace por enlace como por ejemplo:

<A href = http://www.google.es
onFocus = "if (this.blur) this.blur ()"> Click para ir a google</ a>

Esto pero que se aplique del tiron a todos los enlaces. graciassss
  #2 (permalink)  
Antiguo 18/03/2011, 17:45
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: aplicar esto a todos los enlaces y no poner esta linea uno por uno

Usa getElementsByTagName o querySelectorAll, y después recorres el array de objetos y le añades un evento onclick.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 18/03/2011, 17:55
 
Fecha de Ingreso: noviembre-2010
Mensajes: 58
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: aplicar esto a todos los enlaces y no poner esta linea uno por uno

_cronos2 te agradecería sino te importa mucho pudieses escribirme algo mas lo que me has contado, estoy algo verde con javascript aún, y no creo que lo escriba bien y me salga, gracias espero tu respuesta.

¿Cómo se podría adaptar a este script? ¿Este podría valer para todos los enlaces?

var links = document.getElementsByTagName('a');
for(var i = 0; i<links.length;i++){
links[i].onclick=llamarasincrono;
}

¿Donde ponerle la línea que comento?

gracias y perdonarme..

Última edición por erfrancis; 18/03/2011 a las 18:05
  #4 (permalink)  
Antiguo 18/03/2011, 18:07
 
Fecha de Ingreso: noviembre-2010
Mensajes: 58
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: aplicar esto a todos los enlaces y no poner esta linea uno por uno

_cronos2 te agradecería sino te importa mucho pudieses escribirme algo mas lo que me has contado, estoy algo verde con javascript aún, y no creo que lo escriba bien y me salga, gracias espero tu respuesta.

¿Cómo se podría adaptar a este script? ¿Este podría valer para todos los enlaces?

var links = document.getElementsByTagName('a');
for(var i = 0; i<links.length;i++){
links[i].onclick=llamarasincrono;
}

¿Donde ponerle la línea que comento?

gracias y perdonarme..
  #5 (permalink)  
Antiguo 18/03/2011, 19:16
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: aplicar esto a todos los enlaces y no poner esta linea uno por uno

Solucion jquery ([URL="http://jquery.com/"]jquery[/URL] es un framework facil y liviano de javascript)

1) Agrega jquery a tu documento, simplemente copia y pega esta linea en el head (cabezote)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

2)luego

$(document).ready(function(){
$(".clase").focus(function(){
if (this.blur) this.blur ()
})
})



solo tienes que cambiar donde dice .clase por la clase de los links

<a class="unLink">Google</a>
<a class="unLink">YouTube</a>

La clase de los anteriores ejemplos es unLinks, o sea que tendrias que remplazarlo por $(".unLink")
  #6 (permalink)  
Antiguo 19/03/2011, 07:50
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: aplicar esto a todos los enlaces y no poner esta linea uno por uno

Puedes usar la solución de @InKarC pero no creo que sea necesario usar jQuery para eso, a no ser que ya estés usando la librería, entonces sí es válida. Por otro lado, sí, el código que posteaste tú en principio debería funcionar, pero tendrías que ponerlo antes de </body>, o ponerlo dentro de una función en el onload.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #7 (permalink)  
Antiguo 19/03/2011, 14:53
 
Fecha de Ingreso: noviembre-2010
Mensajes: 58
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: aplicar esto a todos los enlaces y no poner esta linea uno por uno

no la verdad que no uso jquery y no pretendía hacerlo en principio, como bien dices cronos no creo que deba ser necesario hacerlo.

Por cierto ya tengo el script y funciona, como bien me comentas cronos habia que añadirlo antes del </body> lo puse antes del </head> y por eso me calentaba la cabeza, gracias ;)

Así que bueno, tema cerrado, ya no se ve el maldito borde en explorer... no hay problema que no solucione el javascript :P

Última edición por erfrancis; 19/03/2011 a las 15:28

Etiquetas: enlaces, linea
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:43.