Ciao a tutti,
sto provando ad inserire uno script fatto in javascript per evidenziare le parole in una pagina web dopo una ricerca .....
Lo script che utilizzo è searchhi.js che troverete in fondo alla pagina.
Lo script funziona perfettamente se utilizzo una sola parola ..... esempio:
http://www.posdatasystem.it/Prova.htm?q=Gmail
ma se utilizzo 2 parole separate tra di loro non funziona più ..... esempio:
http://www.posdatasystem.it/Prova.htm?q=Gmail%20piccola
Qualche idea ?
Grazie mille
codice:/* http://www.kryogenix.org/code/browser/searchhi/ */ /* Modified 20021006 to fix query string parsing and add case insensitivity */ /* Modified 20070316 to stop highlighting inside nosearchhi nodes */ /* Modificato 19 gennaio 2008 da sandro stracuzzi - sandrostracuzzi@hotmail.com */ function highlightWord(node,word) { // Iterate into this nodes childNodes if (node.hasChildNodes) { var hi_cn; for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) { highlightWord(node.childNodes[hi_cn],word); } } // And do this node itself if (node.nodeType == 3) { // text node tempNodeVal = node.nodeValue.toLowerCase(); tempWordVal = word.toLowerCase(); if (tempNodeVal.indexOf(tempWordVal) != -1) { pn = node.parentNode; // check if we're inside a "nosearchhi" zone checkn = pn; while (checkn.nodeType != 9 && checkn.nodeName.toLowerCase() != 'body') { // 9 = top of doc if (checkn.className.match(/\bnosearchhi\b/)) { return; } checkn = checkn.parentNode; } if (pn.className != "searchword") { // word has not already been highlighted! nv = node.nodeValue; ni = tempNodeVal.indexOf(tempWordVal); // Create a load of replacement nodes before = document.createTextNode(nv.substr(0,ni)); docWordVal = nv.substr(ni,word.length); after = document.createTextNode(nv.substr(ni+word.length)); hiwordtext = document.createTextNode(docWordVal); hiword = document.createElement("span"); hiword.className = "searchword"; hiword.appendChild(hiwordtext); pn.insertBefore(before,node); pn.insertBefore(hiword,node); pn.insertBefore(after,node); pn.removeChild(node); } } } } function googleSearchHighlight() { var q = location.search; var q = q.replace("?q=","") highlightWord(document.getElementsByTagName("body")[0],q); } window.onload = googleSearchHighlight;

Rispondi quotando