Foros del Web » Programando para Internet » Javascript »

Links en palabras automatico

Estas en el tema de Links en palabras automatico en el foro de Javascript en Foros del Web. Hola a todos, hace tiempo no entraba al foro, y vuevo con otra pregunta, Como puedo lograr que mediante javascript me agregue en toda la ...
  #1 (permalink)  
Antiguo 12/05/2009, 19:42
Avatar de Sebastian1046  
Fecha de Ingreso: junio-2003
Mensajes: 278
Antigüedad: 20 años, 10 meses
Puntos: 0
Links en palabras automatico

Hola a todos, hace tiempo no entraba al foro, y vuevo con otra pregunta,

Como puedo lograr que mediante javascript me agregue en toda la pagina links a palabras que yo defino.

Defino "casa" con el link a "casa.htm"

entonces en donde tenga la palabra casa me agregue automaticamente el link

La casa de pepe

hay forma de realizar esto?

Lo que no quiero es poner los links uno por uno en varios textos que tengo, quiero definir las palabras con sus links y que haga el trabajo solo.

Gracias de antemano
__________________
Agradesco infinitamente a toda la gente del foro que me ayudo/a.
  #2 (permalink)  
Antiguo 12/05/2009, 21:09
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Links en palabras automatico

Puedes definir un array de las palabras que quieres que se almacenen junto con sus respectivos enlaces, luego usas replace() para hacer el reemplazo. Mira el manual de replace() para que te des una idea. Creo que con eso no necesitas más, pero si me equivoco y requieres más ayuda, solo avisa.
__________________
twitter: @imbuzu
  #3 (permalink)  
Antiguo 12/05/2009, 21:11
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Links en palabras automatico

segun como lo visualizo, apuesto que la mejor alternativa es con DOM. no creo que sea demasiado complicado pero tampoco 10 lineas haras todo el codigo necesario. en mi pensar, el proceso seria recorrer todos los nodos del BODY en busca de nodos de texto (nodeType 3). una vez obtenido, determinar si en la cadena existe un termino dado. y he aqui la parte un poco complicada. de ser cierto, dividir el nodo en varios utilizando como delimitacion el termino. para ello utilizaria splitText. luego de tener el termino en un solo nodo, crear un ancla, insertar el ancla antes del termino (insertBefore), y por ultimo insertar el node dentro del ancla (appendChild).

por supuesto que se ve facil decirlo al menos para la primera ocurrencia del termino. de modo que obviamente se tiene que inclur un bucle. no lo voy a decir para molestarte pero honestamente no tengo la inspiraccon para escribir el codigo.
  #4 (permalink)  
Antiguo 12/05/2009, 21:27
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Links en palabras automatico

zerokilled, Te complicas la existencia. Lo que le he sugerido basta, sin bucles ni nada, el método replace() lo hace automático. Para obtener el texto puede que con getInnerText baste.

Cita:
honestamente no tengo la inspiraccon para escribir el codigo.
Suele pasar jajaja...
__________________
twitter: @imbuzu
  #5 (permalink)  
Antiguo 12/05/2009, 21:42
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Links en palabras automatico

entiendo que con replace se puede hacer y estoy de acuerdo. ahora bien, tengo la premisa de que Sebastian se refiere a terminos que se encuentran en el documento. si utilizamos replace, me hace entender que tu alternativa utilizara innerHTML tanto para leer como para escribir el nuevo contenido, y asumo que quizas en el elemento BODY. por otro lado, he escuchado muchas quejas de personas diciendo que innerHTML le quebranta ciertas funcionalidades, o bien innerHTML no interpreta todos los elementos como es el caso de msie con elementos de tabla (si bien recuerdo). de ahi que consideraba que la mejor solucion es con DOM.

Última edición por zerokilled; 12/05/2009 a las 21:54 Razón: agregar link para referencia futura
  #6 (permalink)  
Antiguo 12/05/2009, 21:52
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Links en palabras automatico

InnerHTML tiene sus disgustos con las tablas, en otras palabras, no se debe usar con tablas por que no funciona, no me preguntes por que. Eso es conocido, y en caso de que se estén usando tablas si es mejor el obtener los nodos de texto mediante el dom, pero aún así, una vez teniendo los nodos de texto en la memoria, puedes trabajarlos con replace() y después reemplazar el texto original en la web por el nuevo texto sin necesidad de usar innerHTML, por lo que desde donde lo veo, replace() sigue siendo la mejor opción comparado con split y bucles. Quizá me equivoque.
__________________
twitter: @imbuzu
  #7 (permalink)  
Antiguo 14/05/2009, 12:17
Avatar de Sebastian1046  
Fecha de Ingreso: junio-2003
Mensajes: 278
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Links en palabras automatico

Muchas gracias por las respuestas, muy buenas!

mm pense que era mas simple y con el replace podia armarlo, pero estoy usando tablas, que es eso de DOM? algun tutorial sobre el tema?

El tema es que estoy armando algo local y sin DB, por eso uso html, pero tengo que entrelazar muchos datos en varias paginas y no quería hacer todos los links manualmente cuando en algunas páginas estos links se repiten.

Saludos y muchas gracias
__________________
Agradesco infinitamente a toda la gente del foro que me ayudo/a.

Última edición por Sebastian1046; 14/05/2009 a las 12:24
  #8 (permalink)  
Antiguo 14/05/2009, 12:33
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Links en palabras automatico

http://www.w3schools.com/htmldom/default.asp
http://es.wikipedia.org/wiki/Document_Object_Model
https://developer.mozilla.org/es/DOM
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 08:32.