Javascript explication svp :)

Résolu
Bonjour a tous , je fais appelle a votre aide car j'aurai besoin que quelqu'un m'explique une fonction que j'ai introduit dans mon site , je ne la comprends pas totalement et il me faudrait si possible une explication très détaillé de "chaque ligne" svp ( c'est un projet effectué en classe , et a vrai dire je ne suis pas très doué en informatique , ce qui m'empeche de comprendre les explications pour connaisseurs des sites ( meme site du zero )
voici le fonction :

// Création de la base de données
var base=new InitBase();
base.Add("foot.html","ballon,football,foot");
base.Add("rambo.html","dof,fod");
// COMPLETEZ ICI la base de données
// base.Add( , ) Jusque la je comprends :)

function disp(txt) { document.write(txt) }
function InitBase() {
this.nb_item=0;
this.Add=AddItem;
this.Search=SearchItem;
}
function AddItem(page,cle) {
var nb = this.nb_item;
var item = new Object;
item.page=page;
item.cle=cle;
this[nb]=item;
this.nb_item++;
}

function SearchItem(txt) {
// txt contient le texte de la recherche

var n=base.nb_item;
var indice=-1;
if (txt=="") {alert("Entrez un mot pour la recherche"); }
else
{ for (var i=0; i<n; i++)
{if (base[i].cle.toUpperCase().indexOf(txt.toUpperCase(),0)!="-1") {indice=i;} // modier le -1 en 1 pour avoir une base positive
}
if (indice>=0) {window.location=base[indice].page;} // Recherche fructueuse
else {window.location="error.html";} // Redirection vers la page NOT FOUND
}
}

Je vous remercie d'avance :)

3 réponses

  1. Bonjour, tout dabord, je pense que tu t'es trompé de forum, néanmoins voici une petite explication.
    J'ai éssayé de rester très "Bas niveaux" pour les explications

    <SCRIPT language = "JavaScript">
    // Création de la base de données
    var base=new InitBase();
    base.Add("foot.html","ballon,football,foot");
    base.Add("rambo.html","dof,fod"); // ICI, appel de la fonction dont je parle par la
    //suite: AddItem(page,cle)

    // Pr des raisons de comprehension je commence la description de cette
    // fonction ici.
    // page == "foot.html" et cle = "ballon,football,foot" ce sont les
    //arguments de la fonction AddItem

    // COMPLETEZ ICI la base de données
    // base.Add( , )

    function disp(txt) { document.write(txt) }
    function InitBase() {
    this.nb_item=0;
    this.Add=AddItem;
    // ICI, création d'une variable Add qui contient la fonction AddItem (Qui est //appelée plus haut avec les arguments)
    this.Search=SearchItem;
    }
    function AddItem(page,cle) {
    // La fonction se charge donc de créer un objet item ayant deux attributs page
    //et cle. A chaque ajout d'un nouveau couple (page, cle) l'attribut nb_item
    //s'incrémente de +1
    //Et le couple est enregistré comme un element d'un tableau (La fonction)
    var nb = this.nb_item;
    var item = new Object;
    item.page=page;
    item.cle=cle;
    this[nb]=item;
    this.nb_item++;
    }

    function SearchItem(txt) {
    // txt contient le texte de la recherche

    var n=base.nb_item;
    var indice=-1;
    if (txt=="") {alert("Entrez un mot pour la recherche"); }
    // Si tu tapes entrez ou tu valides ton formulaire sans entrer de mot, il te
    //signale d'entrer un mot pour la recherche
    else
    { for (var i=0; i<n; i++)
    {if (base[i].cle.toUpperCase().indexOf(txt.toUpperCase(),0)!="-1") {indice=i;}
    // Recherche la présence du mot recherché, indépendement de la casse, dans
    //chaque mot de la base grace à la fonction index.of() qui te retourne la
    //valeur de la position de la première occurence du mot que tu lui passe en
    //paramètre, dans la phrase sur laquelle tu l'appelles.
    }
    if (indice>=0) {window.location=base[indice].page;}
    // Ainsi si l'occurence trouvér précedement est positive, alors le mot a été
    //retrouvé et donc il affiche la page
    else {window.location="error.html";} // Si non redirection
    }
    }

    </SCRIPT>
    1. Bonsoir je vous remercie vraiment pour votre réponse !
      C'est assez claire malgré quelque point d'ombre tout de même que j'essaierai d'éclaircir avec mon camarade lundi soir ( nous sommes 2 par projet)
      Si jamais une difficulté subsiste, je n'hésiterai pas à vous remettre un commentaire lundi soir, merci encore ! Bonne soirée