Bonjour,
Mon souhait: simuler la fonction Edition/rechercher dans page.
'ai récupéré sur le net un bout de code qui me pose problème :
- Il ne fonctionne pas avec firefox
- avec ie, il fonctionne mais donne des résultats imprévisible : soit il trouve tous les termes recherché, soit il n'en trouve aucun, soit il en trouve certains.
Le problème d'incompatibilité avec Firefox ne viendrait-il pas de document.layers ? Et si oui, comment y remédier ?
Si quelqu'un avait une petite idée.
D'avance, merci.
Le code du formulaire
et le code js
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <form name="search" onSubmit="return findInPage(this.string.value);"> <span class="texte">Ou recherchez une activité dans le moteur ci-contre </span> <font size=3> <input name="string" type="text" size=15 onChange="n = 0;"> <input type="submit" value="Chercher"> </form>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 var n = 0; function findInPage(str) { var txt, i, found; if (str == "") { alert ('Vous devez taper mot'); return false; } if (document.layers) { if (!window.find(str)) while(window.find(str, false, true)) n++; else n++; if (n == 0) alert("Recherche infructueuse"); } if (document.all) { txt = window.document.body.createTextRange(); for (i = 0; i <= n & (found = txt.findText(str)) != false; i++) { txt.moveStart("character", 1); txt.moveEnd("textedit"); } if (found) { txt.moveStart("character", -1); txt.findText(str); txt.select(); txt.scrollIntoView(); n++; } else { if (n > 0) { n = 0; findInPage(str); } else alert("Recherche infructueuse"); } } return false; }
Partager