Partage
  • Partager sur Facebook
  • Partager sur Twitter

[VBs] Gros Problème

Je débute...

Sujet résolu
Anonyme
    20 décembre 2006 à 18:43:42

    b ++our à tous, je débute en VBs et je ne comprends pas quelque chose :




    Citation : Tutoriel

    1er Script
    Votre premier JavaScript ou VBScript

    Didier
    Très vite, vous avez dû vous en rendre compte, HTML ne suffit plus...
    Tant qu'un site n'est destiné qu'à afficher ses photos de familles, ça va, mais dès que l'on veut un peu l'animer, des besoins nouveaux surgissent... preuve en est le courrier abondant que je reçois sur des "Comment faire pour..." auquel je réponds très souvent "un JavaScript !"


    1er script

    Un script est un ensemble de commandes encadrées par les balises <script> et </script> qui seront interprétées par le navigateur.

    Recopiez une des sources qui suivent dans votre éditeur

    Tester
    <HTML>
    <BODY>
    <script language="JavaScript">
    var d=new Date()
    document.write(d.toLocaleString())
    </script>
    </BODY>
    </HTML>
    Tester
    <HTML>
    <BODY>
    <script language="VBScript">
    document.write now
    </script>
    </BODY>
    </HTML>

    * Enregistrez comme une page HTML normale, ouvrez-la dans votre navigateur, la date courante s'affiche...
    * Regardez la source de la page (click droit), la date n'y figure pas bien sûr... mais votre navigateur a interprété votre script et affiché son résultat !

    En farfouillant sur internet, en regardant les pages des autres, vous trouverez tout un tas de scripts... Profitez-en pour réutiliser ceux qui semblent bien écrits !...



    Où placer les scripts ?

    * Avant <HTML> si le script doit s'exécuter avant la composition de la page ;

    * Dans le <Head> si l'on veut pré-déclarer des procédures ou regrouper ses scripts ;

    * Dans le corps de la page, au fur et à mesure des besoins ;

    * Dans une balise si le script n'est pas trop long...
    <A href="javascript:void(0)" onclick="alert('Salut !')">Bonjour</A>
    donne le lien Bonjour !
    <A href="vbscript:" onclick='vbscript:MsgBox("Salut !")'>Bonjour</A>
    donne le lien Bonjour !

    * Après </HTML> si le script a besoin d'attendre que la page soit totalement construite pour s'exécuter ;

    * Dans la balise <BODY> on peut également appeler un script en fonction d'évènements, principalement :
    <BODY onload="start()"> appellera votre fonction start() à la fin du chargement de la page ;
    <BODY onunload="quit()"> appellera votre fonction quit() lorsque le visiteur quittera votre page.

    Ou dans un fichier séparé, pour tout ce qui doit être réutilisé par plusieurs pages... dans ce cas :
    - sauvegarder les procédures dans un fichier d'extension .js ;
    - ne pas mettre dans ce fichier les balises <script> et </script> ;
    - appeler ce fichier par la ligne <script src="monfichier.js"></script> AVANT d'invoquer ses procédures...



    A savoir

    * Le séparateur d'instructions est le point-virgule ; en JavaScript et le deux-points : en VBScript

    * Un commentaire sur une ligne commence par // en JavaScript et par l'apostrophe ' en VBScript

    * Le navigateur a besoin de connaître quel est le langage utilisé (JavaScript ou Visual Basic Script), il faut donc lui préciser :
    <script language="JavaScript"> ou <script language="VBScript">

    * Les anciens navigateurs ne connaissent pas ces langages... il faut donc leur cacher les scripts en les encadrant par les mots <!-- et //--> et éventuellement leur prévoir quelque chose encadré par <noscript> et </noscript> !


    Un langage procédural

    Pour éviter d'avoir à réécrire plusieurs fois les mêmes lignes de code, on utilise l'appel à une procédure (ou fonction) :

    Exemple :

    Tester
    <HTML>
    <HEAD>
    <script language="JavaScript">
    function dodate(decalage) {
    var d=new Date()
    var d2=d.getTime()+decalage*1000*60*60*24
    d.setTime(d2)
    document.write(d.toLocaleString())
    }
    </script>
    </HEAD>
    <BODY>
    Nous sommes le <script>dodate(0)</script>
    <br><br>
    Hier, nous étions le <script>dodate(-1)</script>
    <br><br>
    Demain, nous serons le <script>dodate(1)</script>
    </BODY>
    </HTML>
    Tester
    <HTML>
    <HEAD>
    <script language="VBScript">
    sub dodate(decalage)
    dim d
    d = dateAdd("d",decalage,now)
    document.write d
    end sub
    </script>
    </HEAD>
    <BODY>
    Nous sommes le <script>dodate 0</script>
    <br><br>
    Hier, nous étions le <script>dodate -1</script>
    <br><br>
    Demain, nous serons le <script>dodate 1</script>
    </BODY>
    </HTML>

    Remarque : On aurait pu ne pas faire afficher l'heure, mais cela aurait alourdi inutilement en JavaScript ce petit script d'exemple !...



    Procédure ou Fonction ?

    Même si la distinction est subtile en JavaScript, on parlera de procédure lorsque le script fait quelque chose et de fonction lorsqu'il retourne une valeur... En VBScript par contre, la différence est visible (function au lieu de sub) !

    Exemple de fonction :

    Tester
    <HTML>
    <HEAD>
    <meta http-equiv="refresh" content="10">
    <script language="JavaScript">
    function doheure() {
    var d=new Date()
    var texte = "Il est "
    + d.getHours() + "h "
    + d.getMinutes() + "' "
    + d.getSeconds() + "''"
    return texte
    }
    </script>
    </HEAD>
    <BODY>
    <script>document.write(doheure())</script>
    </BODY>
    </HTML>
    Tester
    <HTML>
    <HEAD>
    <meta http-equiv="refresh" content="10">
    <script language="VBScript">
    function doheure()
    dim d
    d=now
    doheure = "Il est " _
    & Hour(d) & "h " _
    & Minute(d) & "' " _
    & Second(d) & "''"
    end function
    </script>
    </HEAD>
    <BODY>
    <script>document.write doheure()</script>
    </BODY>
    </HTML>

    Remarque : La page est rafraîchie automatiquement toutes les 10s afin de ne pas trop surcharger le serveur !... et pour afficher l'heure sur une page, il faut mieux passer par un <DIV>... dans une des fiches suivantes ?...



    Récursivité

    Les fonctions peuvent s'appeler elles-mêmes... attention à bien en prévoir la sortie !...

    Exemple :

    Tester
    <HTML>
    <HEAD>
    <script language="JavaScript">
    function fac(nombre) {
    if(nombre==2) return 2
    else return nombre*fac(nombre-1)
    }
    </script>
    </HEAD>
    <BODY>
    10! = <script>document.write(fac(10))</script>
    </BODY>
    </HTML>
    Tester
    <HTML>
    <HEAD>
    <script language="VBScript">
    function fac(nombre)
    if nombre=2 then fac=2 _
    else fac=nombre*fac(nombre-1)
    end function
    </script>
    </HEAD>
    <BODY>
    10! = <script>document.write fac(10)</script>
    </BODY>
    </HTML>

    Remarque : 10! représente la factorielle du nombre 10
    soit 10x9x8x7x6x5x4x3x2x1 !...


    Application

    Dans une page HTML, pour écrire Bonjour on écrit :

    Bonjour


    Par Script on peut le faire aussi :

    <script language="JavaScript">
    document.write("Bonjour")
    </script>

    <script language="VBScript">
    document.write "Bonjour"
    </script>


    Evidemment, ce n'est pas très économique !... mais regardez la suite :

    Tester
    <script language="JavaScript">
    for(i=1;i<10;i++){
    document.write("Bonjour<br>")
    }
    </script>
    Bonjour
    Bonjour
    Bonjour
    Bonjour
    Bonjour
    Bonjour
    Bonjour
    Bonjour
    Bonjour
    Tester
    <script language="VBScript">
    for i = 1 to 9
    document.write "Bonjour<br>"
    next
    </script>

    Et encore on aurait pu mettre 100 ou 1000... comme valeur limite !

    Regardons ce script de plus près :

    <script language="JavaScript"> Ouvre la zone de script <script language="VBScript">
    for(i=1;i<10;i++) { i=1...Met 1 dans la variable i et répète tout ce qui suit tant que i est plus petit que 10 (ajoute 1 à i à chaque tour) for i = 1 to 9
    document.write("Bonjour<br>") Ecrit Bonjour et revient à la ligne document.write "Bonjour<br>"
    } Fin de la boucle for next
    </script> Ferme la zone de script </script>


    On peut aussi faire afficher une variable :

    Tester
    <script language="JavaScript">
    for(i=1;i<10;i++) {
    document.write("Tour n° "+i+"<br>")
    }
    </script>
    Tour n° 1
    Tour n° 2
    Tour n° 3
    Tour n° 4
    Tour n° 5
    Tour n° 6
    Tour n° 7
    Tour n° 8
    Tour n° 9
    Tester
    <script language="VBScript">
    for i = 1 to 9
    document.write "Tour n° " & i & "<br>"
    next
    </script>


    On peut aussi imbriquer des boucles :

    Tester
    <script language="JavaScript">
    document.write("<table width=100% border>")
    for(i=1;i<10;i++) {
    document.write("<tr>")
    for(j=1;j<10;j++) {
    document.write("<th>"+i*j+"</th>")
    }
    document.write("</tr>")
    }
    document.write("</table>")
    </script>
    Tester
    <script language="VBScript">
    document.write "<table width=100% border>"
    for i = 1 to 9
    document.write "<tr>"
    for j = 1 to 9
    document.write "<th>" & i*j & "</th>"
    next
    document.write "</tr>"
    next
    document.write "</table>"
    </script>
    affiche
    1 2 3 4 5 6 7 8 9
    2 4 6 8 10 12 14 16 18
    3 6 9 12 15 18 21 24 27
    4 8 12 16 20 24 28 32 36
    5 10 15 20 25 30 35 40 45
    6 12 18 24 30 36 42 48 54
    7 14 21 28 35 42 49 56 63
    8 16 24 32 40 48 56 64 72
    9 18 27 36 45 54 63 72 81


    Application II

    On peut enfin tester les variables :

    Tester
    <script language="JavaScript">
    document.write("<table width=100% border>")
    for(i=1;i<10;i++) {
    document.write("<tr>")
    for(j=1;j<10;j++) {
    if((i==1)||(j==1)) {
    document.write("<th bgcolor=yellow>")
    } else {
    document.write("<th>")
    }
    document.write(i*j+"</th>")
    }
    document.write("</tr>")
    }
    document.write("</table>")
    </script>
    Tester
    <script language="VBScript">
    document.write "<table width=100% border>"
    for i = 1 to 9
    document.write "<tr>"
    for j = 1 to 9
    if i = 1 or j = 1 then
    document.write "<th bgcolor=yellow>"
    else
    document.write "<th>"
    end if
    document.write i*j & "</th>"
    next
    document.write "</tr>"
    next
    document.write "</table>"
    </script>
    affiche
    1 2 3 4 5 6 7 8 9
    2 4 6 8 10 12 14 16 18
    3 6 9 12 15 18 21 24 27
    4 8 12 16 20 24 28 32 36
    5 10 15 20 25 30 35 40 45
    6 12 18 24 30 36 42 48 54
    7 14 21 28 35 42 49 56 63
    8 16 24 32 40 48 56 64 72
    9 18 27 36 45 54 63 72 81


    Regardons ce script de plus près :

    if((i==1)||(j==1)) { Si i est égal à 1 OU si j est égal à 1 alors if i = 1 or j = 1 then
    } else { Sinon else
    } Fin du test end if

    Remarque : Attention en JavaScript à ne pas confondre le // des commentaires avec le || du "ou" !
    hein Jacky...:o) et pour faire un | c'est AltGr-6...


    Quelques compléments :

    &&
    AND
    et >
    supérieur >=
    supérieur ou égal <=
    inférieur ou égal !=
    <>
    différent var --
    var=var-1
    soustrait 1




    Exercice

    Modifier le script précédent de manière à ce qu'il affiche...



    Courage !

    JavaScript - La réponse déjà ? :) - VBScript
    (Click droit pour regarder la source et donc le script !)



    voici un tutoriel que j'ai trouvé sur internet...pour chaque exemple VBs je teste le javascript et tout marche et lorsque je veux essayé le VBs en question rien ne s'affiche sur la page html...si quelqu'un pouvait me dire pourquoi ?

    merci d'avance ;)

    Ga
    • Partager sur Facebook
    • Partager sur Twitter
      20 décembre 2006 à 19:11:04

      parce que tu utilises firefox...


      essaye avec IE :)
      • Partager sur Facebook
      • Partager sur Twitter

      [VBs] Gros Problème

      × 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.
      • Editeur
      • Markdown