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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
<script type="text/javascript">
var n = 0;
var id0;
function findInPage()
{
var txt, x, found;
var string = document.getElementById(id0).options[document.getElementById(id0).selectedIndex].value;
if (string != "")
{
if (document.all)
{
//i.e
txt = window.document.body.createTextRange();
for (x = 0; x <= n && (found = txt.findText(string)) != false; x++)
{
//moveStart(String mode, Integer n)
//Définit l'unité à utiliser. Déclenche une erreur "Argument non valide" dans le cas où l'unité est inconnue
//Définit le nombre d'unités que le curseur de départ doit se déplacer, relativement à sa position d'origine.
txt.moveStart("character", 1);
//moveEnd()
//Moves the end position of a text to a new location
//textedit = start or end of the text range
txt.moveEnd("textedit");
}
if (found)
{
//Si texte trouvé, le sélectionner et faire défiler la page pour qu'il soit visible
txt.moveStart("character", -1);
txt.findText(string);
txt.select();//crée une sélection active sur le texte
txt.scrollIntoView();//fait défiler jusqu'au texte
n++;
document.onkeypress=appuieTouche;//on appuie sur la touche entrée pour voir les occurences
}
else
{
//Si plus de texte trouvé alors recherche terminée. Réinitialisation du compteur.
//On renvoit sur une ancre pour voir les menus déroulants.
location.href='#haut';
document.onkeypress="";
alert("La recherche est terminée.");
n = 0;
}
}
else
{
//autres navigateurs. Utilisation de window.find() au lieu de createTextRange()
//Si texte trouvé, le sélectionner et faire défiler la page pour qu'il soit visible
if (window.find(string))
{
n++;
document.onkeypress=appuieTouche;
}
else
{
location.href='#haut';
findInPage();
//Même fonctionnalité que les 2 lignes du dessus mais le focus revient sur le texte et donc on ne
//voit pas les menus déroulants.
//while(window.find(string, false, true));
//n++;
}
}
}
return false;
}
function appuieTouche(e)
{
if (document.all)
{
if (event.keyCode==13)
{
findInPage();
}
}
else
{
if (e.which==13)
{
findInPage();
}
}
}
</script> |
Partager