Manu la Science ...la science ... pas toujours | Bonjour à tous,
J'explique mon sujet: j'ai une page html (globale) qui se découpe en deux frames en ligne (j'ai besoin de voir toujours afficher des ancres et une zone de recherche). Dans la page html globale, je mets le script suivant trouvé sur le net et qui me sert de recherche : Code :
- <script language=JavaScript>
- <!--
- /* Find In Page Script- By Mike Hall (MHall75819@aol.com) */
- /* Recherche de mot */
- var NS4 = (document.layers); // Which browser?
- var IE4 = (document.all);
- var win = parent.bas ; // window to search.
- var n = 0;
- function findInPage(str) {
- var txt, i, found;
- if (str == "" )
- return false;
- // Find next occurance of the given string on the page, wrap around to the
- // start of the page if necessary.
- if (NS4) {
- // Look for match starting at the current point. If not found, rewind
- // back to the first match.
- if (!win.find(str))
- while(win.find(str, false, true))
- n++;
- else
- n++;
- // If not found in either direction, give message.
- if (n == 0)
- alert("Je suis navré, je n'ai rien trouvé. Vérifiez l'orthographe." );
- }
- if (IE4) {
- txt = win.document.body.createTextRange();
- // Find the nth match from the top of the page.
- for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
- txt.moveStart("character", 1);
- txt.moveEnd("textedit" );
- }
- // If found, mark it and scroll it into view.
- if (found) {
- txt.moveStart("character", -1);
- txt.findText(str);
- txt.select();
- txt.scrollIntoView();
- n++;
- }
- // Otherwise, start over at the top of the page and find first match.
- else {
- if (n > 0) {
- n = 0;
- findInPage(str);
- }
- // Not found anywhere, give message.
- else
- alert("Je suis navré, je n'ai rien trouvé. Vérifiez l'orthographe." );
- }
- }
- return false;
- }
- // -->
- </script>
|
Dans ma frame du bas, j'ai un texte dans lequel je voudrais faire ma recherche.
Dans la frame du haut, je mets le code suivant servant de zone de recherche: Code :
- <FORM name="search" onsubmit="return findInPage(this.string.value);">
- <INPUT name="string" onchange="n = 0;" size="18">
- <INPUT type="submit" value="Rechercher"></FORM>
|
Je pense que ma déclaration de variable "var win = parent.bas ;" n'est pas bonne, j'ai cherché et essayé diverses écritures sans succès du style windows.parent.bas, frames['bas'], frames[1]...
Est-ce que quelqu'un connaîtrait l'écriture de ma variable qui marcherait avec mon code ?
Merci de vos réponses. Message édité par Manu la Science le 08-10-2003 à 17:43:20 ---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
|