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
* 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 :
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>
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 ?
× 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.