Mejorando el buscador de Google

Mejorando el buscador de Google

Hace unos meses proponíamos una forma muy sencilla para integrar el buscador de Google en nuestro portal DotNetNuke. Pues bien, el tiempo y el uso nos han enseñado algunas pegas de aquella implementación: vamos a explicar cuáles son y cómo solucionarlas.

Por un...

Hace unos meses proponíamos una forma muy sencilla para integrar el buscador de Google en nuestro portal DotNetNuke. Pues bien, el tiempo y el uso nos han enseñado algunas pegas de aquella implementación: vamos a explicar cuáles son y cómo solucionarlas.

Por un lado, hemos detectado que, según la versión de DNN y el tipo de skin que tengamos, el script no funcionará. DNN impide la correcta ejecución del javascript que gobierna el buscador, y hemos de "enganarle" un poco. Lo que haremos, básicamente, será eliminar el código que introducíamos en el encabezado el módulo para pasarlo directamente el contenido del módulo HTML. Para evitar que nuestro precioso código pueda ser modificado por el editor de texto de DNN (da igual que sea el ya obsoleto FCKEditor o el Telerik RADEditor) deberemos poner el editor en modo Cuadro de texto básico y, lo más importante, antes de actualizar el contenido del módulo lo pasaremos a modo RAW: esto grabará nuestro código exactamente igual que lo dejemos en el cuadro de texto. Algo que debemos tener en cuenta es que, si volvemos a entrar en el contenido del módulo HTML, con el editor en cualquier modo, nuestro texto se habrá distorsionado y no podremos actualizarlo: por tanto, deberemos guardar una copia del código fuera del portal DNN (por ejemplo, en un fichero .txt)

Por otro lado, nuestro precioso buscador devuelve resultados a medida que escribimos los términos de busqueda pero, si inadvertidamente pulsamos la tecla Intro (o Enter) se lanzará un submit y la página se recargará sin resultados. Para evitar esta molestia basta con añadir un sencillo código Javascript que anulará la tecla Intro para nuestro texto de búsqueda.

Aquí os dejamos el nuevo código:

<!-- buscador Google -->
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script language="Javascript" type="text/javascript">
<!--
    google.load('search', '1.0');

    function OnLoad() {
        var searchControl = new google.search.SearchControl();
        var drawOptions = new google.search.DrawOptions();
        drawOptions.setInput(document.getElementById("gss_input"));
        var options = new google.search.SearcherOptions();
        options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
        options.setRoot(document.getElementById("gcsResults"));
        // options.setNoResultsString("No results found.");  <-- This option is broken as of 11/10/2008
        searchControl.setLinkTarget(google.search.Search.LINK_TARGET_SELF);
        searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET);
        var siteSearch = new google.search.WebSearch();
        siteSearch.setSiteRestriction("
www.aquieldominio.com");
        searchControl.addSearcher(siteSearch, options);
        searchControl.draw(null, drawOptions);
    }

    google.setOnLoadCallback(OnLoad, true);
-->
</script>

<div >Busque en el portal:&#160;<input type="text" id="gss_input" size="50" onkeypress="return event.keyCode!=13" ><hr />
</div>
<div id="gcsResults">&#160;</div>

4181 Puntúe este artículo:
3.0

Deje un comentario

Añadir comentario

Lo más leído