je veut crée une barre de recherche et j'ai deja crée la barre et le code js saufe que mon probleme est que je voudrais trouver un code qui fait en sorte que je n'est pas à ecrire pour chaque résultat quel page index dois s'ouvrire, ca serai trop long !!
exemple:
<script type="text/javascript">
function ouvrirPage(){
var a = document.getElementById("search").value;
if (a === "tuto"){
window.open("help1.html");
}
if (a === "jeux"){
window.open("/index-english.html");
}
}
</script>
ceci est un exemple
je voudrais du coup trouver un code qui permet que je n'est pas à ecrire pour chaque page chaque résultats le
if (a === "jeux"){window.open("/index-english.html"); }
voila, merci pour votre attention merci de bien vouloir m'aider pour ceux ou celles qui le voudrons bien x3
Bonjour ce que tu essaye de faire n'a pas l'air si simple, tu peut peut-être écrire une association entre les pages et des mot clés puis cherché les pages correspondantes en fonction des mot clés entré ce système n'est pas optimal (il sera vite limité) tu pourras essayé de l'amélioré au fur et à mesure que tu vois un problème/ une limite.
// créé des associations entre les pages et des mot clés
const pageAssociateur = {
"help1.html": [
"tuto",
"help",
"aide"
],
"/index-english.html": [
"jeux",
"joué",
"play"
]
};
function cherchePage(motCle) {
const pages = Object.keys(pageAssociateur);
let etTrouve = null;
for(let i = 0; i < pages.length; i++) {
const motsAssocie = pages[i];
if(motsAssocie.includes(motCle)) {
etTrouve = pages[i];
}
}
return etTrouve;
}
function ouvrirPage(){
var contenueRecherche = document.getElementById("search").value;
// convertie en minuscule et retire les espace aux extrémité de la chaîne
// pour facilité le traitement de la recherche (cela lui donne une forme générique)
contenueRechercheNormalizer = contenueRecherche.toLocaleLowerCase().trim();
const page = cherchePage(contenueRechercheNormalizer);
if(page !== null) {
window.open(page);
} else {
console.log("aucune page ne correspond à la recherche pour: ", contenueRecherche);
}
}
Le code ci dessus et très limité comme tu peut le voir car il par du principe que l'on rentre un seul mot dans la barre de recherche une idée d'amélioration serait de vérifié si il y à des espaces dans le contenue de la recherche (donc plusieurs mots) et effectué la recherche de contenue avec plusieurs mot.
Un autre problème qui peut arrivé c'est qu'un mot matche avec un résultat et un autre mot matche avec un autre résultat il faudra mettre en place un système qui permet au script de prendre une décision (comme donné un score/une importance différente au mot) qui peut dépendre de l'ordre dans le quel il sont entré par exemple (si il sont entré en premier il seront "souvent" plus important).
Si tu veut implémenté un moteur de recherche déjà existant en javascript tu peut essayé de trouvé une librairie en tapant des mots clés sur google comme:
motor search client side
search engine javascript library
suggestion de présentation.
Java script barre de recherche
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
suggestion de présentation.