Foros del Web » Programando para Internet » Javascript »

Buscador que no funciona

Estas en el tema de Buscador que no funciona en el foro de Javascript en Foros del Web. Hola que tal bueno buscando por la web un buscador de paginas html en javascript encontre el siguiente el problema es que cuando lo copie ...
  #1 (permalink)  
Antiguo 28/06/2010, 21:44
 
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 15 años
Puntos: 1
Buscador que no funciona

Hola que tal bueno buscando por la web un buscador de paginas html en javascript encontre el siguiente el problema es que cuando lo copie para ver como funcionaba este no lo hace si alguien me puede explicar y solucionar el porque no funciona se lo agradecere mucho. bueno el codigo es el siguiente:

Código HTML:
<html> 

<head> 
<!-- Buscador en JavaScript --> 
<SCRIPT LANGUAGE='JavaScript'> 
var numeroPaginas=10; //PAGINAS TOTALES 
var numeroDatos=4; //DATOS POR PAGINA (descr,pal clave, link, titulo) 
var baseDatos=new Array(numeroPaginas); 
for (i=0; i<numeroPaginas; i++) //ES PARA CREAR LOS CUATRO DATOS DE CADA PAGINA 
{ baseDatos=new Array(numeroDatos); } 
<!-- Creación de la base de datos --> 
baseDatos[0][0]="http://dalila.sip.ucm.es/miembros/olga/colores"; 
baseDatos[0][1]="Colores RGB"; 
baseDatos[0][2]="El propósito de esta página es mostrarte cómo especificar colores uniformes en HTML"; 
baseDatos[0][3]="html,colores,RGB"; 
<!-- --> 
baseDatos[1][0]="http://dalila.sip.ucm.es/miembros/olga/dimensionado"; 
baseDatos[1][1]="Dimensionado de Imágenes"; 
baseDatos[1][2]="Incluir imágenes en una página web es muy sencillo"; 
baseDatos[1][3]="imagen,jpg,jpeg,gif,html"; 
<!-- --> 
baseDatos[2][0]="http://dalila.sip.ucm.es/miembros/olga/tablas"; 
baseDatos[2][1]="Las Tablas en HTML"; 
baseDatos[2][2]="Las tablas son uno de los elementos más versátiles de HTML. Permiten mostrar la información de una manera compacta y clara."; 
baseDatos[2][3]="fila,columna,celda,tabla,html"; 
<!-- --> 
baseDatos[3][0]="http://dalila.sip.ucm.es/miembros/olga/form"; 
baseDatos[3][1]="Los Formularios en HTML"; 
baseDatos[3][2]="HTML permite emplear los llamados formularios, para que el usuario pueda enviar información hacia el servidor."; 
baseDatos[3][3]="formularios,validacion,javascript,html"; 
<!-- --> 
baseDatos[4][0]="http://dalila.sip.ucm.es/miembros/olga/frames"; 
baseDatos[4][1]="Los Frames en HTML"; 
baseDatos[4][2]="El uso de marcos (frames) es una técnica muy utilizada en la actualidad."; 
baseDatos[4][3]="frame,marco,target,html"; 
<!-- --> 
baseDatos[5][0]="http://dalila.sip.ucm.es/miembros/olga/enlaces"; 
baseDatos[5][1]="Marcos y Enlaces"; 
baseDatos[5][2]="Si tienes algo de experiencia en esto de la navegación por Internet, te habrás dado cuenta de que en algunas páginas los marcos pueden anidarse interminablemente."; 
baseDatos[5][3]="marcos,enlaces,target,html"; 
<!-- --> 
baseDatos[6][0]="http://dalila.sip.ucm.es/miembros/olga/mapas"; 
baseDatos[6][1]="Ejemplo de Mapa"; 
baseDatos[6][2]="En HTML, se denomina mapa a la imagen utilizada para enlazar con varias páginas, yendo a una u otra según la zona sobre la que se pulse el ratón."; 
baseDatos[6][3]="mapa,imagen,html"; 
<!-- --> 
baseDatos[7][0]="http://dalila.sip.ucm.es/miembros/olga/javas"; 
baseDatos[7][1]="Ejemplos de JavaScript"; 
baseDatos[7][2]="Aquí podrás encontrar algunas aplicaciones de JavaScript para que puedas mejorar la presentación de tus páginas web." 
baseDatos[7][3]="scripts,ventanas,scrolls,eventos,javascript"; 
<!-- --> 
baseDatos[8][0]="http://dalila.sip.ucm.es/miembros/basico"; 
baseDatos[8][1]="Nociones Básicas de JavaScript"; 
baseDatos[8][2]="En esta página encontrarás las nociones básicas sobre JavaScript que necesitas para mejorar tus páginas web."; 
baseDatos[8][3]="variables,bucles,funciones,eventos,cajas,arrays,javascript"; 
<!-- --> 
baseDatos[9][0]="http://dalila.sip.ucm.es/miembros/olga/arrays"; 
baseDatos[9][1]="Los Arrays en JavaScript"; 
baseDatos[9][2]="Los arrays son un elemento extremadamente importante en cualquier lenguaje de programación."; 
baseDatos[9][3]="arrays,arrays densos,arrays bidimensionales,javascript"; 
<!-- --> 

var sinAcento=new Array('a','e','i','o','u'); 
var conAcento=new Array('á','é','í','ó','ú'); 
var entradasResultado=""; 
var paginaResultados=""; 

function prepararPalabra(palabra) //PONE LA PALABRA EN MINUSCULAS Y SIN TILDES 
{ var resultado=""; var longitud; //DEVUELVE EL REULTADO 
resultado=palabra.toLowerCase(); 
longitud=resultado.length; 
for (i=0; i<5; i++) 
{ posicion=resultado.indexOf(conAcento); 
while (posicion!=-1) 
{ resultado=resultado.substring(0,posicion)+sinAcento+resultado.substring(posicion+1,longitud); 
posicion=resultado.indexOf(conAcento);} 
} 
return resultado; 
} 

function buscarPalabra(palabra,desde) //SI ENCUENTRA LA PALABRA DESDE DESDE EN ALGUNA BASEDATOS 
{ var indice=-1; //MODIFICA EL INDICE CON EL Nº DE BASEDATOS 
for (i=desde; i<numeroPaginas; i++) //DEVUELVE EL INDICE EN NUMERO 
if (baseDatos[0].search(palabra)!=-1 || baseDatos[1].search(palabra)!=-1 || 
baseDatos[2].search(palabra)!=-1 || baseDatos[3].search(palabra)!=-1) 
{ indice=i; 
break; } 
return indice; 
} 

function principioPagina(palabra,cantidad) //PRINCIPIO DE PAGINA 
{ paginaResultados+="<HTML><HEAD><TITLE>Resultados de la búsqueda</TITLE></HEAD>"+ 
"<BODY BGCOLOR='#FFFFFF'><FONT FACE='helvetica'><CENTER>"+ 
"<FONT SIZE=+2><B>Resultados de la búsqueda</B></FONT><HR NOSHADE></CENTER>"; 
if (cantidad==0) 
paginaResultados+="<P>Lo sentimos, no se han obtenido resultados para la palabra " 
else paginaResultados+="<P>Se ha(n) encontrado "+cantidad+" resultado(s) relacionados con "; 
paginaResultados+="<FONT COLOR='#0000FF'><B>"+palabra+"</B></FONT>.<BR>" 
} 

function anyadirEntrada(posicion) //PONE UN RESULTADO (TITULO+BR+DESCR) 
{ entradasResultado+="<P><A HREF='"+baseDatos[posicion][0]+".html'>"+baseDatos[posicion][1]+"</A><BR>" 
+baseDatos[posicion][2]; 
} 

function finalPagina() // EL FINAL DE LA PAGE 
{ paginaResultados+="<BR><BR><BR>(R)</BODY></HTML>"; 
} 

function buscador(palabra) //EL BUSCADOR COMPLETO 
{ numeroResultados=0; 
paginaResultados=""; 
entradasResultado=""; 

var buscada=prepararPalabra(palabra); 
var claveBuscada=new RegExp(buscada); 
indice=-1; 
do { indice=buscarPalabra(claveBuscada,indice+1); 
if (indice!=-1) 
{ anyadirEntrada(indice); 
numeroResultados++; } 
} while (indice!=-1) 
principioPagina(buscada,numeroResultados); 
paginaResultados+=entradasResultado; 
finalPagina(); 
mostrarVentana(paginaResultados); 
} 

function mostrarVentana(pagina) 
{ opciones="toolbar=0,status=0,menubar=0,"+ 
"resizable=0,scollbars=1,width=575,height=450"; 
nuevaVentana=window.open("","",opciones) 
nuevaVentana.document.close(); 
nuevaVentana.document.open(); 
nuevaVentana.document.write(pagina); 
} 
</SCRIPT> 

</head> 

<body> 
<FORM NAME='entrada'> 
<CENTER> 
<TABLE> 
<TR> 
<TD><FONT FACE='helvetica'><B>Palabra clave:</B></FONT></TD> 
<TD><INPUT TYPE='text' NAME='dato' SIZE=18></TD> 
<TD><FONT FACE='helvetica'><INPUT TYPE='button' VALUE='Buscar' 
onClick="buscador(document.entrada.dato.value)"></FONT></TD> 
<TD><FONT FACE='helvetica'><INPUT TYPE='button' VALUE='Borrar' 
onClick="document.entrada.dato.value=''"></FONT></TD> 
</TR> 
</TABLE> 
</FORM> 

</body> 

</html> 
Bueno gracias y espero comentarios y soluciones.
  #2 (permalink)  
Antiguo 28/06/2010, 22:53
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: Buscador que no funciona

¿seguro que estaba funcionando? ¿o le retocaste y ahora no sabes qué le hicistes? me cuesta creer que inicialmente el código estuviera funcionando desde el sitio original. verás por qué lo digo. el primer error que me marca al cargar el script es que baseDatos[0][0] no existe. esto porque baseDatos[0] no es un array. fijate que no estoy diciendo baseDatos, sino baseDatos[0]. cuando busco en el código dónde se intenta inicializar un array de array (array bidimensional) encuentro que es el siguiente. pero el código esta mal porque lo que realmente está haciendo es sobreescribir diez veces el array con cuatro elementos. la solucion esta marcado en rojo.
Código:
for (i=0; i<numeroPaginas; i++) //ES PARA CREAR LOS CUATRO DATOS DE CADA PAGINA 
{ baseDatos[i]=new Array(numeroDatos); }
recargo el documento y ya no me muestra error. procedo a escribir un termino y buscar, entonces me aparece otro error: baseDatos[0].search() no es una función. la razón porque baseDatos[0] ahora es un array pero el método search no existe ni esta definida en el núcleo como parte de los arrays. aquí me detengo y me cuestiono si realmente ese es el código original. sea como sea, estoy casi seguro que hay que editar mucho en ese código. te recomiendo una de dos: comienza desde el principio haciendo ensayo error llevando poco a poco las funciones a un nuevo documento, o ve arreglando los errores según te va indicando la consola de error del navegador.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: buscadores
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 18:30.