Salve,
ho da poco approntato sul mio sito un sistema che permette di suggerire la frase che si sta scrivendo in un campo di ricerca.

Il sistema prende questi dati da un database il quale si aggiorna ogni volta che viene inserito un nuovo termine di ricerca, il quale produce un risultato. (a breve si baserà anche sui termini ricercabili tra i contenuti, ma non è questo il problema).

Il codice implementato è questo:
codice:
function wSuggest ( objCampo ) {
 if (document.all) {
  if (SuggestWords) {
   var arr = SuggestWords.split("|");
   var selezione = false;
   var stringa = objCampo.value;
   if ((event.keyCode!=46)&&(event.keyCode!=8)) {
	if (stringa.length>0) {
	 if (event.keyCode==8&&selezione) { objCampo.value = stringa.substr(0,stringa.length-1); stringa = objCampo.value; }
	 var selectionStart = stringa.length;
	 for (i=0; i<arr.length; i++) {
	  if (arr[i].substr(0, stringa.length) == stringa) {
	   objCampo.value = arr[i];
	   var selectionEnd = objCampo.value.length;
	   if (objCampo.setSelectionRange) { objCampo.focus(); objCampo.setSelectionRange(selectionStart, selectionEnd); }
	   else if (objCampo.createTextRange) { var range = objCampo.createTextRange(); range.collapse(true); range.moveEnd('character', selectionEnd); range.moveStart('character', selectionStart); range.select(); }
	   break;
	  }
	 }
	}
   }
  }
 }
}
Come potete vedere dal codice, ho un variabile SuggestWords la quale riempio tramite XML HTTP (sempre JS) ogni volta che aggiorno la pagina.

Come potete vedere sempre dal codice, il sistema funziona solo con Internet Explorer: ed è questo che mi da noia!!!

Come nel caso di Google Suggest vorrei che il sistema funzioni anche con Mozilla Firefox, ma non riesco a capire come implementare le funzioni di per evidenziare il testo aggiunto di volta in volta dalla funziona.

Come posso farlo funzionare anche con Firefox?


P.S.
Il mio sito è www.darcas.net ed il campo di ricerca (in alto a dx) per il momento deve essere ancora istruito sui termini, ora risponde a parole come "computer, einstein, neutrino, telecomunicazioni, telefonia" ma nulla vieta che ci siano altri termini.