Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1487 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Faire 1 recherche sur 1 frame dans 1 autre frame [Résolu, code déposé]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire 1 recherche sur 1 frame dans 1 autre frame [Résolu, code déposé]

n°532520
Manu la Sc​ience
...la science ... pas toujours
Posté le 06-10-2003 à 15:21:54  profilanswer
 

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 :
  1. <script language=JavaScript>
  2. <!--
  3. /* Find In Page Script- By Mike Hall (MHall75819@aol.com) */
  4. /* Recherche de mot */
  5. var NS4 = (document.layers);    // Which browser?
  6. var IE4 = (document.all);
  7. var win = parent.bas ;    // window to search.
  8. var n   = 0;
  9. function findInPage(str) {
  10. var txt, i, found;
  11. if (str == "" )
  12. return false;
  13. // Find next occurance of the given string on the page, wrap around to the
  14. // start of the page if necessary.
  15. if (NS4) {
  16. // Look for match starting at the current point. If not found, rewind
  17. // back to the first match.
  18. if (!win.find(str))
  19. while(win.find(str, false, true))
  20. n++;
  21. else
  22. n++;
  23. // If not found in either direction, give message.
  24. if (n == 0)
  25. alert("Je suis navré, je n'ai rien trouvé. Vérifiez l'orthographe." );
  26. }
  27. if (IE4) {
  28. txt = win.document.body.createTextRange();
  29. // Find the nth match from the top of the page.
  30. for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
  31. txt.moveStart("character", 1);
  32. txt.moveEnd("textedit" );
  33. }
  34. // If found, mark it and scroll it into view.
  35. if (found) {
  36. txt.moveStart("character", -1);
  37. txt.findText(str);
  38. txt.select();
  39. txt.scrollIntoView();
  40.   n++;
  41.   }
  42. // Otherwise, start over at the top of the page and find first match.
  43. else {
  44. if (n > 0) {
  45. n = 0;
  46. findInPage(str);
  47. }
  48. // Not found anywhere, give message.
  49. else
  50. alert("Je suis navré, je n'ai rien trouvé. Vérifiez l'orthographe." );
  51. }
  52. }
  53. return false;
  54. }
  55. // -->
  56. </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 :
  1. <FORM name="search" onsubmit="return findInPage(this.string.value);">
  2. <INPUT name="string" onchange="n = 0;" size="18">
  3. <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 ?
 
 :jap:  Merci de vos réponses.  :jap:


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...
mood
Publicité
Posté le 06-10-2003 à 15:21:54  profilanswer
 

n°532580
Manu la Sc​ience
...la science ... pas toujours
Posté le 06-10-2003 à 16:42:32  profilanswer
 

Il y aurait également un autre moyen, ce serait d'afficher en permanence la zone de recherche qui serait alors sur la même page, et là le script marche... Mais je ne sais pas comment forcer l'affichage d'un morceau de page autrement qu'avec les frames...
 
Voilà pour le complément d'infos.


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°534588
Manu la Sc​ience
...la science ... pas toujours
Posté le 08-10-2003 à 17:26:20  profilanswer
 

Salut à tous,
 
Voici une réponse à ma question et même plus...

Code :
  1. <script language="JavaScript">
  2. function rechercher (mot)
  3. {
  4. mydoc = parent.maframe.document;
  5. myanchor = mydoc.getElementById(mot);
  6. if (myanchor) {
  7.  myurl = mydoc.location.href;
  8.  myurllength = myurl.indexOf ("#" );
  9.  if (myurllength > 0) {
  10.   newurl = myurl.substring (0, myurllength)+"#"+mot;
  11.  } else {
  12.   newurl = myurl+"#"+mot;
  13.  }
  14.  mydoc.location.href = newurl;
  15. }
  16. }
  17. function cibler (mot)
  18. {
  19. mydoc = parent.maframe.document;
  20. anchornum = 0;
  21. do {
  22.  thisanchor = mydoc.anchors[anchornum].name;
  23.  if (thisanchor.substr(0, mot.length) == mot) {
  24.   anchornum = mydoc.anchors.length;
  25.   myurl = mydoc.location.href;
  26.   myurllength = myurl.indexOf ("#" );
  27.   if (myurllength > 0) {
  28.    newurl = myurl.substring (0, myurllength)+"#"+thisanchor;
  29.   } else {
  30.    newurl = myurl+"#"+thisanchor;
  31.   }
  32.   mydoc.location.href = newurl;
  33.  }
  34.  anchornum += 1;
  35. }
  36. while (anchornum <= mydoc.anchors.length)
  37. }
  38. </script>


La première fonction permettant de rechercher le mot parmi des ancres nommées et la seconde permettant de rechercher au fur et à mesure de la saisie du mot.
 
Avec le formulaire suivant:

Code :
  1. <form name="form1" method="post" action="">
  2.   <input type="text" name="textfield" onKeyUp="cibler (document.form1.textfield.value);">
  3.   <input type="submit" name="Submit" value="Envoyer" onclick="rechercher (document.form1.textfield.value);">
  4. </form>


 
le tout permet d'avoir une frame en haut (par exemple) qui est une zone de recherche des mots qui se trouvent dans la frame en bas (par exemple). La recherche des mots se fait au fur et à mesure de leur saisie en sachant que la recherche ne se fait que parmi les ancres de la frame du bas...
 
Bonne fin de journée à tous.


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Faire 1 recherche sur 1 frame dans 1 autre frame [Résolu, code déposé]

 

Sujets relatifs
prob avec firebird [résolu]esay php modif du code de phpmyadmin ??
Resolu [C] Probleme de resultat de calcul[resolu] fonction choice
Help ! pige pas... [résolu][resolu] syntaxe en couleur
Code source windows CEmoteur de recherche interne api google
[XHTML] Comment remplacer une "script frame" ??[C] mot clef "code"
Plus de sujets relatifs à : Faire 1 recherche sur 1 frame dans 1 autre frame [Résolu, code déposé]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR