Foros del Web » Programando para Internet » Javascript »

diccionario

Estas en el tema de diccionario en el foro de Javascript en Foros del Web. Hola Tengo una página que se compone de texto corrido (es un diccionario de seguros), lo que quiero es ponerle un buscador de términos p.ej. ...
  #1 (permalink)  
Antiguo 12/05/2004, 00:37
Avatar de palidowsky  
Fecha de Ingreso: febrero-2002
Ubicación: Galicia-España
Mensajes: 438
Antigüedad: 22 años, 1 mes
Puntos: 0
diccionario

Hola

Tengo una página que se compone de texto corrido (es un diccionario de seguros), lo que quiero es ponerle un buscador de términos p.ej. contenido. En el momento que el usuario ponga esrtá palabra, que el texto se vaya al lugar donde esta palabra aparece y se coloree de distinto color. No tengo ni idea de como hacerlo, y si lo debo de hacer en PHP o JAvascript. ¿Me podeis ayudar?

Gracias
  #2 (permalink)  
Antiguo 12/05/2004, 03:10
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Hola!

Puedes probar con esto que te pongo. Pero tiene un fallo. Tienen que coincidir las mayusculas y las minúsculas. Seguiré investigando:

<html>
<head>
<title>Untitled</title>
<script>
aqui="";
function comprobar(esto,donde){
if(aqui==""){
aqui=document.getElementById(donde).innerHTML;
}
document.getElementById(donde).innerHTML=aqui.spli t(esto).join("<b style='color:red'>"+esto+"</b>");

}

</script>
</head>

<body>
<div id="pregunta">
Tengo una página que se compone de texto corrido (es un diccionario de seguros), lo que quiero es ponerle un buscador de términos p.ej. contenido. En el momento que el usuario ponga esrtá palabra, que el texto se vaya al lugar donde esta palabra aparece y se coloree de distinto color. No tengo ni idea de como hacerlo, y si lo debo de hacer en PHP o JAvascript. ¿Me podeis ayudar?
</div>
<form>
<input type="text" name="palabra"><br>
<input type="button"
value="comprobar"
onclick="comprobar(document.forms[0].palabra.value,'pregunta')">
</form>
</body>
</html>
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 12/05/2004, 04:26
Avatar de palidowsky  
Fecha de Ingreso: febrero-2002
Ubicación: Galicia-España
Mensajes: 438
Antigüedad: 22 años, 1 mes
Puntos: 0
Gracias Karlancas, lo probaré
  #4 (permalink)  
Antiguo 12/05/2004, 04:42
Avatar de palidowsky  
Fecha de Ingreso: febrero-2002
Ubicación: Galicia-España
Mensajes: 438
Antigüedad: 22 años, 1 mes
Puntos: 0
Hola Karlancas, et dejo un enlace a la página para ver si me puedes ayudar; no me funciona.

Me gustaría (por pedir que no sea) que en el momento en que se pida una palabra, si esta está en el diccionario, el scroll vaya hasta ella y aparezca en el primer término ¿Se podría restringir la búsqueda sólo a las entradas del diccionario y no a todas las palabras del documento?.
enlace

De todas maneras gracias
  #5 (permalink)  
Antiguo 13/05/2004, 13:47
Avatar de terrariomania  
Fecha de Ingreso: abril-2004
Mensajes: 145
Antigüedad: 20 años
Puntos: 0
Cierto, yo he probado a meter ambos códigos y cada uno de los dos por separado y no funciona.

A ver si comentais como se soluciona esto, muchas gracias.

Un saludo amigos.
__________________
Si mis bichos hablasen me mandarían a tomar por saco. Mi mujer si que habla.
  #6 (permalink)  
Antiguo 13/05/2004, 14:11
 
Fecha de Ingreso: mayo-2004
Mensajes: 22
Antigüedad: 19 años, 11 meses
Puntos: 0
Tienes que iniciar el formulario con <form> y acabarlo con </form>
  #7 (permalink)  
Antiguo 14/05/2004, 01:49
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Muchas gracias excitex!

Eso es. Si os fijais, cuando en el código se llama a la función, se le envían 2 variables. La primera es el contenido del input donde has metido la palabra:

onclick="comprobar(document.forms[0].palabra.value,'pregunta')">

Y como podeis observar lo busca así:

Le dice al script que busque dentro del documento, el primer formulario y dentro de este el campo con name palabra. Una vez localizado debe coger su value, es decir, su valor, su contenido. Pero si le quitais las etiquetas de form, el script será incapaz de encontrarlo ya que al llegar al primer formulario dará error porque no lo encontrará.

Os recomiendo que no sólo copieis y pegueis, sino que intenteis entender el código. No os preocupeis, si no lo entendeis preguntad que los que sabemos un poco más os contestaremos encantados. Así poco a poco hareis vuestros propios scripts.

Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 16/05/2004, 02:35
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Puede poner: Utiliza ctrl+F para buscar

Si el usuario no tiene Internet Explorer, seguramente ya sabrá como buscar.
__________________
M a l d i t o F r i k i
  #9 (permalink)  
Antiguo 16/05/2004, 02:36
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Ventajas del código anterior: El usuario puede buscar aunque no soporte Javascript.

Desventajas: En Mac seguramente se usará otro comando para buscar.
__________________
M a l d i t o F r i k i
  #10 (permalink)  
Antiguo 16/05/2004, 02:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola a todos:

Un pequeño cambio al código de KarlanKas (¡Hola !) con expresiones regulares que permite las mayúsculas (pero el fallo es que cambia el valor de las mayúsculas)
Si no se quiere se cambia el segundo parámetro de la expresión regular por "g", y si solo se quiere la primera se quita la "g"...
function comprobar(esto,donde){
if(aqui==""){
aqui=document.getElementById(donde).innerHTML;
}
document.getElementById(donde).innerHTML=aqui.repl ace(new RegExp(esto, "gi"),"<b style='color:red'>"+esto+"</b>");

}

Saludos
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 19:16.