Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Simulare tasto "Trova"

  1. #1

    Simulare tasto "Trova"

    Ciao,
    esiste qualche script che simuli il tasto Trova del browser (CTRL+F) che evidenzia la parola cercata?

    Avrei bisogno di uno script che, data una parola inserita in un form, ne evidenzi TUTTE le occorrenze nella pagina (mentre il tasto Trova del browser si limita ad evidenziare soltanto la prima, permettendo di trovare le altre con i "successivo" o "precedente").


  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Qualcosa del genere si puo` farlo, ma con limitazioni (rispetto al ^F).

    nel caso piu` semplice, puoi evidenziare tutte le occorrenze all'interno di un <div>:

    codice:
    function trova(cosa, dove);
    // cosa e` una stringa che non contiene caratteri speciali;
    // dove e` l'id del <div> in cui cercare
      var str = document.getElementById(dove).innerHTML;
      var re = "/"+(cosa)+"/gi";
      str = str.replace(cosa, "\<span class\=\'evid\'\>$1\<\/span\>");
      document.getElementById(dove).innerHTML = str;
    }
    nel CSS della pagina ci dovra` essere la classe .evid che conterra` la caratteristica dell'evidenziazione.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    ma ci sono limiti al div?
    se io costruisco ad esempio un listino di prodotti:
    <div id="dove">
    <table>
    <tr><td>elvive</td><td>2,30</td></tr>
    <tr><td>pantene</td><td>2,30</td></tr>
    <tr><td>clear</td><td>2,30</td></tr>
    <tr><td>neutro roberts</td><td>2,30</td></tr>
    </table>
    </div>

    il tuo script ricerca anche all'interno delle td?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non dovrebbero esserci problemi per la dimensione (finche` il browser riesce a gestire la stringa, qualche Kbyte).

    Solo non metterci dentro il tasto che clicchi per far partire il tutto e il campo di input e chiaramente lo script stesso, perche` potresti creare dei loop strani.
    In linea di massima cerca di tenerlo piu` piccolo possibile, e comunque non superare i 10 KB.

    Tornando al codice: non chiamare il div "dove" e` gia` il nome di un oggetto del document.

    Potresti fare:
    <table id="tabella">
    ...
    </table>

    <form>
    <input type="text" name="parola" />
    <input type="button" value="evidenzia" onclick="trova(this.form.parola.value, 'tabella');>
    </form>
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.