Académique Documents
Professionnel Documents
Culture Documents
Initiation au langage
Description du langage
Fonctions et javaScript
Le navigateur
Externaliser le script
<input
type = "type"
class ="personnalisé"
name="personnalisé"
id ="personnalisé"
actionsSurElement="personnalisé"
value="personnalisé"
/>
Dans cet exemple pour savoir ce que la boite de texte contient nous y ferions
référence en utilisant la hiérarchie suivante:
window.document.monFormulaire.boiteDeTexte.value
Les noms de référence sont ceux indiqués dans le code source qui a construit
le formulaire de la page HTML
va donner le chemin :
window.document.monFormulaire.boiteDeTexte.value
document.monFormulaire.boiteDeTexte.value
navigator
Cette propriété va évaluer les versions du navigateur utilisé, les types MIME
utilisés par le client ainsi que les plug-in qui sont installés.
Client:
Le client est l’application qui va être mise en relation avec le serveur à
partir de la machine du visiteur, c’est à dire le navigateur. Faire travailler
le client plutôt que le serveur va par exemple soulager le second.
Plug-in:
Le plug-in est un module externe au navigateur et qui va augmenter les
capacités du navigateur. Généralement un plug-in permet la lecture de
types de fichiers autres que html. Les plus répandus sont les plug-ins
java et les plug-ins Flash.
window
document
location
Cet objet va contenir les informations basées sur l’URL en cours, c'est le
contenu de la barre d'url.
history
Cet objet contient les propriétés des URL précédemment visitées par le client.
URL:
Universal Ressource Locator ou lien. Les URL sont la base de la
navigation sur internet. http://www.google.fr est une URL absolue qui
amènera de quelque endroit de la planète que ce soit sur la page
d’accueil de google en français. /pages/index.html est une URL relative
dans le sens ou ce lien emmènera le visiteur vers une page relative au
serveur sur lequel elle est placée.
<html>
<head>
<title>page javaScript</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
</body>
</html>
<script type="text/JavaScript">
</script>
Cette balise tout comme les balises html possède un balise d'ouverture
ouverte par le signe < et fermée par le signe >
<script type="text/JavaScript">
</script>
Lorsque vous allez écrire du code javaScript vous allez à la fois utiliser une
syntaxe de code et une mise en page.
La syntaxe de code est celle qui va contenir les objets javaScript et qui va
produire les actions. La mise en page est la façon dont vous allez organiser
votre code.
Exemple:
<head>
<title>page javaScript</title>
<script type="text/JavaScript">
alert("test");
/*
ceci est en commentaire multi ligne
cette ligne est aussi en commentaire
le commentaire finit sur la ligne suivante avec
*/
</script>
</head>
Le message d'alerte:
Lorsque vous allez visualiser cette page html dans un navigateur vous allez
obtenir un message d'alerte contenant le message que vous avez indiqué
entre les guillemets
L'objet alert utilisé ici est celui qui va lancer une fenêtre d'alerte dans le
navigateur au chargement de la page.
Les objets javaScript sont des élément référencés par les navigateurs
internet qui produiront tel ou tel type d'action.
Quelques liens :
<html>
<head>
<title>page javaScript</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/JavaScript">
</script>
</head>
<body>
</body>
</html>
Ce n'est pas par hasard que alert est le premier test fait en javaScript.
Alert sert très souvent à tester la validité d'une action de façon simple ou à
tester le contenu de variables.
Ici notre action ne contient qu'un paramètre c'est à dire une chaîne de
caractères.
Les chaînes de caractères sont produites par l'utilisation des guillemets ou
des apostrophes pour les délimiter.
Notez que ce qui est en javascript n'est pas en HTML mais en format texte
standard
Les variables sont des sortes de boites de mémoire qui vont pouvoir stocker
des données, par exemple si je veux affecter à la variable monTexte la valeur
de bonjour je vais écrire :
monTexte = "bonjour";
alert( monTexte );
alert( "monTexte" );
Dans le premier cas monTexte n'est pas entre guillemets, c'est donc
obligatoirement une variable, ce qui sera affiché c'est le contenu de la
variable. Cette variable doit exister pour être utilisée.
alert(monChoix);
monChoix = "Ceci ne fonctionne pas.";
Pour que cela fonctionne il faut que la variable aie préalablement été
déclarée.
prenom = "Stéphane";
nom = "Jeanneau";
la variable patronyme est composée des variables prenom et nom séparés par
une chaîne de caractère qui contient un espace, l'espace est un caractère
comme un autre.
alert(patronyme);
Une variable globale est accessible de partout alors qu'une variable locale ne
sera accessible que là où elle a été déclarée, dans une fonction par exemple
Vous obtenez une variable locale par la déclaration de la variable avec var à
l'intérieur d'une fonction.
uneVarglobale = 10;
var uneAutreVar = 10;
//dans le cas ci-dessus les deux variables seront disponibles partout
function monTest(){
//ici la variable n'est disponible que dans la fonction
var uneVarLocale = 22;
}
nombreCD = 45
la variable nombreCD ne contient que des chiffres qui eux ne sont pas entre
guillemets,
ils sont interprétés en tant que tels,
nombreCD = 45;
nombreK7 = 5;
nombreVinyls = 35; Le résultat sera 85
Afin de produire des actions avec JavaScript vous devez tout d’abord vous
familiariser avec les opérateurs et les conditions et les boucles.
Les opérateurs
L’opérateur d’affectation =
unCalcul = 15;
monCalcul3 += unCalcul;
unCalcul = 15;
monCalcul3 = monCalcul3 + unCalcul;
== est équivalent à,
nombreCD = 3;
alert(messageTexte);
- Simple condition
La valeur 2 sera la valeur que l’on veut tester en rapport avec nombreCD
nombreCD = 3;
alert(messageTexte);
alors action 1
sinon action 2.
La valeur 2 sera la valeur que l’on veut tester en rapport avec nombreCD
nombreCD = 3;
//alors action 1
}else{
//sinon action 2
alert(messageTexte);
nombreCD = 3;
if(nombreCD == 3){
//alors action 1
//alors action 2
}else{
sinon action 3
alert(messageTexte);
Pour faire des séries logiques il existe des boucles qui vont vous permettre à
partir de quelques paramètres de produire des séries.
- La boucle for
ce qui donnera
ecriture = “”;
for(n =1 ; n<10 ; n++){
}
document.write(ecriture);
- La boucle while
ce qui donnera
n = Number(0);
}
document.write(ecriture);
Ces boucle for et while vont servir à tester des séries de valeurs, à créer des
listes ou des séries de boutons ou des croix à la volée.
<html>
<head>
<title>document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<script type="text/JavaScript">
document.write("Bonjour");
</script>
</body>
</html>
Ce qui est habituellement entre guillemets double dans le code html est ici
remplacé par un guillemet simple. Les guillemets doubles ne servent alors
qu’à l’écriture du code.
Pour insérer des guillemets entre des guillemets il va falloir les échapper, c'est
à dire que le guillemet doit être interprété comme un caractère ordinaire et
pas comme une ouverture/fermeture de chaîne.
on écrira
<script type="text/JavaScript">
texte = "Les guillemets \" \" sont des caractères qui vont par paire.";
alert(texte);
</script>
Il existe une autre fonction d'écriture qui est innerHTML(), elle est documentée
plus bas dans ce document.
sa création
et
son utilisation, ce que l'on nomme son appel.
Si par exemple nous devons produire une fonction de calcul nous pourrions
écrire:
function calcul() {
resultat=25+50;
document.write(resultat);
}
<html>
<head>
<title>exemple</title>
<script type="text/JavaScript">
function calculB() {
resultat = 5 + 50;
alert( resultat );
}
</script>
</head>
<body>
<script type="text/JavaScript">
calculB();
</script>
</body>
</html>
function calcul(a,b) {
resultat=a+b;
document.write(resultat);
}
L’avantage est que nous pouvons alors appeler le calcul en modifiant les
valeurs de a et de b.
calcul(14,10);
<html>
<head>
<title>titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/JavaScript">
function calcul(a,b)
{
resultat=a+b;
document.write("résultat =" + resultat);
}
</script>
</head>
<body bgcolor="#FFFFFF">
<script type="text/JavaScript">
calcul (14,10);
</script>
</body>
</html>
Ces actions sont des objets javaScript qui s’insèrent dans la balise html <body>
onFocus Cette action va détecter si l’objet fenêtre perd le focus c’est à dire si la
fenêtre active perd sa position de premier plan vis à vis d’une autre fenêtre
du navigateur.
Pour insérer le code que nous avons produit nous allons utiliser l’objet
onLoad dans le marqueur body
<html>
<head>
<title>document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/JavaScript">
function navCheck(){
leNavigateur="Vous visitez ce site avec<br>"+navigator.appName+"<br>sous
plate-forme "+navigator.platform+"<br> version"+ navigator.appVersion+" .";
document.write(leNavigateur);
}
</script>
</head>
insertion de la fonction au chargement //
<body bgcolor="#FFFFFF" onLoad="navCheck();">
</body>
</html>
Pour que cette page ouvre une fenêtre il va falloir créer une fonction qui va se
charger, non seulement de l’ouverture mais également de son formatage,
c’est à dire sa taille et ses options.
Une capture page suivante place les options dans une page html
Il est évident que pour ouvrir une autre fenêtre il faut avoir au moins deux
documents html. Le document à ouvrir ici se nomme: fenetre.html et est placé
dans le même dossier que le document qui contient le javaScript.
function ouvreFenetre(uneURL,nomFenetre,details) {
window.open(uneURL,nomFenetre,details);
}
</script>
</head>
<body onLoad="ouvreFenetre('fenetre.html','nom','toolbar=yes,location=yes,
status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=200,height=100')">
</body>
</html>
<html>
<HEAD>
<TITLE>retour</TITLE>
<script type="text/JavaScript">
function clicclose()
{
clicWindow=window.close();
}
</script>
</HEAD>
<body bgcolor="#ffffff">
<a href="#" onClick="clicclose();">
Fermer cette fenêtre
</a>
</body>
</html>
<html>
<head>
<title>jano PrinIt</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/JavaScript">
function go(){
if (window.print){
window.print();
}else{
alert("Votre navigateur ne prend pas cette fonction en charge");
}
}
</script>
</head>
<body bgcolor="#FFFFFF">
<form method="POST" name="form">
<input type="button" name="Btn" value="Print cette page" onClick="go();">
</form>
</body>
</html>
Le code ci-dessous vous permet de ramener votre visiteur vers la page qu’il
aura précédemment visitée.
<html>
<HEAD>
<TITLE>retour</TITLE>
</HEAD>
<body bgcolor="#ffffff">
<p>
<a href="JavaScript:history.back(1);"> Retour page précédente...</a>
</p>
</body>
</html>
getElementById()
<script type="text/JavaScript">
test = document.getElementById("menuGauche");
alert(test);
</script>
test = document.getElementById("menuGauche").class;
alert(test);
getElementsByName()
Va donner accès à l'élément HTML par l'attribut name entre les parenthèses
getElements (ByName) avec s contrairement au getElement (ByDiv) sans s
test = document.getElementsByName("menuGauche").name;
alert(test);
Va donner accès à l'élément HTML par l'attribut tag entre les parenthèses
<script type="text/javascript">
function changeLeH1(){
document.getElementsByTagName("h1")[0].firstChild.data="Changé de h1";
}
</script>
Cet élément est pratique pour lister les éléments d'une page html.
innerHTML
Dans l'exemple suivant on affiche la valeur de test avec une fonction ajout
<script type="text/javascript">
test = 0;
function ajout(element){
test++; element.innerHTML= test;
}
</script>
<p onClick="ajout(this);">
compter
</p>
Le problème des appels de .appName est qu'ils ne sont pas fiables sur la
véritable identité du navigateur qui va visiter la page.
typeNavigateur = navigator.userAgent;
version = navigator.appVersion;
Il est possible d'externaliser le code javascript, un peu comme pour les css,
les données seront stockées dans un document unique auquel les pages
pourront faire appel.
L'avantage étant que lors d'une modification d'un script javascript tous les
documents liés prendront automatiquement cette modification.
typeNavigateur = navigator.userAgent;
version = navigator.appVersion;
<script type="text/JavaScript">
alert("Pas de problème.....");
</script>