Un moteur de recherche en JavaScript
Pour faciliter la navigation à l'intérieur d'un site, voire sur un certain nombre de sites, on peut
utiliser une bibliothèque de liens hypertextes (URL) associés à des mots-clés.
La base de données peut par exemple être préparée par VB ou VBA en
parcourant les pages du site et en en récupérant le titre, l'URL et les mots clés.
La recherche dans la base peut, quant à elle, utiliser JavaScript.
L'exemple suivant montre comment on peut, avec quelques lignes de JavScript,
effectuer la recherche des sites contenant un mot-clé dans la base :
Les informations (liste des URL et de leurs mots clés) sont stockées dans la page HTML
sous forme de liens hypertexte pointant sur l'URL et ayant pour nom (NAME) une chaine de caractères
comprenant le titre du site et ses mots clés, par exemple :
<BR><A HREF="Structure_macro.html" NAME="structure de la macro (mots clés = macro, procédure, sub, enregistreur_de_macro, enregistreur, commentaires)"></A>
<BR><A HREF="TCD.html" NAME="bases de données (mots clés = excel, base_de_données, sous-totaux, tcd, tableau_croisé_dynamique, consolidation, requête, requête_internet, lien_hypertexte, sendmail, mail, messagerie, bourse)"></A>
<BR><A HREF="tangram.html" NAME="tangram en vba (mots clés = excel, vba, macro, animation, tangram, déplacer, rotation, shapes, onaction)"></A>
...
Aucun texte n'étant inscrit entre les balises <A> et </A>,
cette liste n'est pas affichée à l'écran.
La recherche est lancée par
cle=prompt("tapez le mot clé à rechercher dans la base")
qui invite l'utilisateur à saisir le mot clé qu'il stocke dans la variable
cle.
La réponse du moteur, txt, est élaborée simplement en parcourant
l'ensemble des liens de la page à l'aide d'une boucle :
for (num=1;num<=document.links.length;num++)
et en y recherchant le mot-clé :
if (document.links[num-1].name.indexOf(cle)>-1)
Chaque lien contenant le mot-clé est ajouté au texte de réponse :
txt=txt+"<A HREF='"+document.links[num-1].href+"'>"+document.links[num-1].name+"</A><BR>"
Une fois l'ensemble des liens balayé, il suffit d'afficher le texte réponse dans un nouveau document
par : document.write(txt).
La page dans son ensemble se présente donc comme suit :
<HTML><HEAD><SCRIPT>
function liste() {
cle=prompt("tapez le mot clé à rechercher dans la base")
txt="<HTML><BODY>";
for (num=1;num<=document.links.length;num++)
{if (document.links[num-1].name.indexOf(cle)>-1)
{txt=txt+"<A HREF='"+document.links[num-1].href+"'>"+document.links[num-1].name+"</A><BR>"}}
txt=txt+"</BODY></HTML>";
document.open();
document.write(txt);
document.close()}
</SCRIPT></HEAD>
<BODY onload="liste()">
<BR><A HREF="Structure_macro.html" NAME="structure de la macro (mots clés = macro, procédure, sub, enregistreur_de_macro, enregistreur, commentaires)"></A>
<BR><A HREF="TCD.html" NAME="bases de données (mots clés = excel, base_de_données, sous-totaux, tcd, tableau_croisé_dynamique, consolidation, requête, requête_internet, lien_hypertexte, sendmail, mail, messagerie, bourse)"></A>
<BR><A HREF="tangram.html" NAME="tangram en vba (mots clés = excel, vba, macro, animation, tangram, déplacer, rotation, shapes, onaction)"></A>
</BODY></HTML>
Attention, cet exemple n'est qu'une ébauche de moteur.
Pour un bon fonctionnement en toutes circonstances, il faudrait prendre en compte
de nombreux éléments comme les majuscules, les accents,
les apostrophes et les guillemets qui risquent de perturber la recherche. Si le nombre de réponses trouvées
par le moteur est trop important, une erreur peut également se produire...
Reste à créer la base de données à partir des pages
d'un site Web par exemple.
Cliquer ici
pour voir comment cette création de base de mots clés
peut être réalisée par VBA sous Excel.
Lancer une recherche
Cliquez ici pour télécharger un modéle un
peu plus élaboré (fichier zip 21 ko).
Lancer une recherche.
Cliquez ici pour télécharger un fichier Excel générant un dictionnaire des fonctions JavaScript (fichier zip, 26 ko).
Voir le dictionnaire JavaScript.
Voir aussi le dictionnaire VBA pour Excel.
Et le dictionnaire VBS.