dejo el código del buscador, página que jalo del buscador a la principal por via de ajax y el código con el que hago las llamadas ajax haber si alguién me puede ayudar con este problema.
buscador.js
Código:
buscadorJS.html , a esta la llamo desde el index.html via AJAX//CONFIGURACION var dominio = 'canijaster.com' //dominio desde el que se ejecuta el buscador var extension = 'html' //extension de las paginas del site (htm o html) var pagina_buscador = '/test/buscadorjs/buscadorJS.html' //ruta y nombre de la pagina de busqueda (con barra por delante) var buscapa = 'buscadorJS.html' // nombre de la pagina del buscador canijaster var id_div = 'contenidos' // nombre del div contenedor var imagen_relevancia = 'punt' //ruta y prefijo nombre de imagenes relevancia (punt_on.gif y punt_off.gif) var tipo_fuente = 'Verdana, Arial, Serif' var grosor_fuente = '400' var color_fuente = '#483713' var tamano_fuente = '0.9em' var tamano_fuente_titulo = '1.1em' var grosor_fuente_titulo = '600' var color_fuente_titulo = '#A25151' var color_fondo = '#FAFAF5' var color_fuente_clave = '#FF0000' var color_enlace = '#554B8B' var grosor_enlace = '600' var color_enlace_visitado = '#AD83B4' var color_enlace_activo = '#DD0000' var fondo_enlace_visitado = '#FFA4A4' var resXpag = 5 //numero de resultados por pagina var color_subrayado = '#FFFF00' //color fondo palabra clave subrayada en resultados busqueda //FIN CONFIGURACION //NO CAMBIES NADA A PARTIR DE AQUI SI NO SABES LO QUE HACES //variables globales var accion var f = '<p></p>' var h = 465 var g = 664950 var totales //numero de entradas encontradas var Pagina = '' //string que contendra la pagina a mostrar var resultados = '' //string reusltados busqueda var clave2 //palabra a buscar var res = new Array() //guarda relevancias busqueda var caracter = new Object(5) caracter[0] = 'á' caracter[1] = 'é' caracter[2] = 'í' caracter[3] = 'ó' caracter[4] = 'ú' var caracter_nuevo = new Object(5) caracter_nuevo[0] = 'a' caracter_nuevo[1] = 'e' caracter_nuevo[2] = 'i' caracter_nuevo[3] = 'o' caracter_nuevo[4] = 'u' var caracter_nuevo2 = new Object(5) caracter_nuevo2[0] = '[áa]' caracter_nuevo2[1] = '[ée]' caracter_nuevo2[2] = '[íi]' caracter_nuevo2[3] = '[óo]' caracter_nuevo2[4] = '[úu]' //obtiene longitud de la base de datos var longitud = BaseDatos.length function CalculaRelevancia(indice) { var CadenasEntrada var parciales = 0 //divide la cadena de resultados en subcadenas y escribe los resultados CadenasEntrada = BaseDatos[indice].split(";") //recorre las subcadenas en busca de la clave, para asignar relevancia for (var n = 0; n < CadenasEntrada.length; n++) { if ( CadenasEntrada[n].search(clave2) != -1 ) { parciales++ } } if ( parciales != 0 ) { res[ res.length ] = parciales + '|' + indice } } //escribe codigo HTML function MuestraPagina( htmlData ) { if (document.getElementById) { document.getElementById("areaDatos").innerHTML = htmlData } else if (document.all) { document.all["areaDatos"].innerHTML = htmlData } else { return } } // lanza proceso busqueda // nuevaBusqueda = 0 >> buscar // nuevaBusqueda != 0 >> usar resultados de busqueda anterior // en este caso, nuevaBusqueda tiene el total function IniciaBuscador(palabraClave, paginacion, nuevaBusqueda) { //inicia variables globales var desde = 0 var partes var CadenasEntrada var descripcion = '' totales = nuevaBusqueda //a 0 si nueva busqueda //detiene busqueda si palabra clave vacia if ( palabraClave == "" ) { alert("¡Introduzca cadena de búsqueda!") return }
Código:
codigo.js <-- con este hago las llamadas AJAX<html> <head> <title> ---- </title> </head> <body> <h1>Busquedas Camping</h1> <div id="areaDatos"> </div> <script type="text/javascript"> MuestraBuscador(); </script> </body> </html>
Código:
y el interpretador de javascript que viene de AJAX// Documento JavaScript // Esta función cargará las paginas function llamarasincrono(url, id_contenedor){ var pagina_requerida = false if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc pagina_requerida = new XMLHttpRequest() } else if (window.ActiveXObject){ // pero si es IE try { pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP") } catch (e){ // en caso que sea una versión antigua try{ pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP") } catch (e){} } } else return false pagina_requerida.onreadystatechange=function(){ // función de respuesta cargarpagina(pagina_requerida, id_contenedor) } pagina_requerida.open('GET', url, true) // asignamos los métodos open y send pagina_requerida.send(null) } // todo es correcto y ha llegado el momento de poner la información requerida // en su sitio en la pagina xhtml /*function cargarpagina(pagina_requerida, id_contenedor){ if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1)) var scs=pagina_requerida.responseText.extractScript(); document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText; scs.evalScript(); //document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText }*/ function cargarpagina(pagina_requerida,id_contenedor){ if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1)) { var scs=pagina_requerida.responseText.extractScript(); //capturamos los scripts document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText; //id_contenedor.innerHTML=pagina_requerida.responseText; scs.evalScript(); //ahora si, comenzamos a interpretar todo }else{document.getElementById (id_contenedor).innerHTML ="Cargando ..."} } function nuevoAjax(){ var xmlhttp=false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; }
Código:
Perdon ya se que es mucho código pero lo puse todo para que sea mas fácil identificar el error, alguién sabe que tengo que hacer para poder hacer una nueva busqueda cuando ya me dio un resultado?var tagScript = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)'; /** * Eval script fragment * @return String */ String.prototype.evalScript = function() { return (this.match(new RegExp(tagScript, 'img')) || []).evalScript(); }; /** * strip script fragment * @return String */ String.prototype.stripScript = function() { return this.replace(new RegExp(tagScript, 'img'), ''); }; /** * extract script fragment * @return String */ String.prototype.extractScript = function() { var matchAll = new RegExp(tagScript, 'img'); return (this.match(matchAll) || []); }; /** * Eval scripts * @return String */ Array.prototype.evalScript = function(extracted) { var s=this.map(function(sr){ var sc=(sr.match(new RegExp(tagScript, 'im')) || ['', ''])[1]; if(window.execScript){ window.execScript(sc); } else { window.setTimeout(sc,0); } }); return true; }; /** * Map array elements * @param {Function} fun * @return Function */ Array.prototype.map = function(fun) { if(typeof fun!=="function"){return false;} var i = 0, l = this.length; for(i=0;i<l;i++) { fun(this[i]); } return true; };
Gracias de antemano por cualquier aportación