Home > Internet & Telecoms > Javascript Tutorial

Chapitre 1 | Chapitre 2 | Chapitre 3 | Chapitre 4 | Chapitre 5 | Chapitre 6 | Chapitre 7 | Chapitre 8 | Chapitre 9 | Chapitre 10

Chapitre 7 Les objets window, string et math...


7.1 Propriétés et méthodes de l'objet window


Certaines propriétés et méthodes de l'objet window ne vous sont pas inconnues : celles des boites de dialogue avec alert(), confirm(), et prompt(), et celles du ou des minuteries. Soit setTimeout() et clearTimeout(). Une autre série ayant trait aux frames : frames[], length, parent, opener et top.Une série a trait à la barre d'état avec status et defaultStatus. Une série pour l'ouverture et la fermeture d'une fenêtre : open() et close(). Et enfin self qui renvoie à la fenêtre en cours.


7.2 Utilisation de la barre d'état


Avec Javascript, la barre d'état (petite bande située au bas de la fenêtre du browser et qui vous informe sur l'état des transferts et des connections) peut être utilisée pour afficher des messages. Les propriétés mises en oeuvre sont :

Propriété

Description

status

valeur du texte affiché dans la barre d'état de la fenêtre.

DefaultStatus

valeur par défaut qui s'affiche dans la barre d'état.

Généralement, cet événement est mis en oeuvre par un onmouseOver() sur un lien hypertexte.

En voici un exemple : A voir ici

<HTML>
<BODY>
<A HREF="#" onmouseover="self.status='Votre texte'; return true;"> A voir ici </A>
</BODY>
</HTML>

Il est indispensable d'ajouter return true;


7.3 Ouverture et fermeture de fenêtres


Les méthodes mises en oeuvre sont :

Méthodes

Description

open()

ouvre une nouvelle fenêtre.

close()

ferme la fenêtre en cours.

La syntaxe est : [window.]open("URL","nom_de_la_fenêtre","caractéristiques_de_la fenêtre")URL est l'URL de la page que l'on désire afficher dans la nouvelle fenêtre (si on ne désire pas afficher un fichier htm existant, on mettra simplement ''"), et où caractérstiques_de_la _fenêtre est une liste de certaines ou de toutes les caractéristiques de fenêtre suivantes que l'on note à la suite, séparées par des virgules et sans espaces ni passage à la ligne.

Caractéristique

Description

toolbar=yes ou no

Affichage de la barre d'outils

location=yes ou non

Affichage de champ d'adresse (ou de localisation)

directories=yes ou no

Affichage des boutons d'accès rapide

status=yes ou no

Affichage de la barre d'état

menubar=yes ou no

Affichage de la barre de menus

scrollbars=yes ou no

Affichage des barres de défilement.

(scrollbars=no fonctionne mal sous Explorer 3.0)

resizable=yes ou no

Dimensions de la fenêtre modifiables

width=x en pixels

Largeur de la fenêtre en pixels

height=y en pixels

Hauteur de la fenêtre en pixels

On peut aussi utiliser 1 ou 0 au lieu de yes ou no.

Remarques :

Cette nouvelle fenêtre va s'afficher un peu n'importe où sur votre écran. Vous ne pouvez pas décider de l'endroit exact où elle peut apparaître. Cependant sous Netscape 4 (sous Javascript 1.2) , ce petit "plus" est possible.

Sous Microsoft Explorer 3, l'apparition de la nouvelle fenêtre se fait après une grimace du browser (il ouvre temporairement une nouvelle fenêtre du browser).

L'usage des nouvelles fenêtres est assez sympathique en Javascript pour afficher des informations complémentaires sans surcharger la page (ou fenêtre) de départ. Cependant, aussi longtemps que l'utilisateur ne ferme pas ces nouvelles fenêtres, celles-ci restent ouvertes. Le pire est lorsqu'on les minimise. Pour peu qu'on utilise souvent cette technique, le navigateur se retrouve avec plusieurs dizaines de fenêtres ouvertes ce qui fait désordre, ralentit le système et peut finir par le planter.

Veillez donc à toujours faire fermer ces nouvelles fenêtres.

Voici quelques exemples:

  • Ouverture par un bouton (avec code dans le onClick)

Pour ouvrir un petite fenêtre qui affiche le fichier test.htm avec un bouton dans la page.

Fichier test.htm :

<HTML>
<BODY>
<H1>Ceci est un test<HI>
<FORM>
<INPUT TYPE="button" value= " Continuer " onClick="self.close()">
</FORM>
</BODY>
</HTML>

self.close() fermera la fenêtre courante, ie la nouvelle fenêtre.

Dans la page de départ :

<FORM>
<INPUT TYPE ="button" value="Ouvrir une nouvelle fenêtre"
onClick="open('test.htm', 'new', 'width=300,height=150,toolbar=no,location=no,
directories=no,status=no,menubar=no,scrollbars=no,resizable=no')">

(sans espaces ni passage à la ligne)
</FORM>

  • Ouverture par un bouton (avec appel d'une fonction)

Dans la page de départ :

<SCRIPT LANGUAGE="javascript">
<!--
function new_window() {
xyz="open('test.htm', 'new', 'width=300,height=150,toolbar=no,location=no,
directories=no,status=no,menubar=no,scrollbars=no,resizable=no')">
// sans espaces ni passage à la ligne
}
// -->
</SCRIPT>
<FORM>
<INPUT TYPE ="button" value="Ouvrir une nouvelle fenêtre" onClick="new_window()">
</FORM>

  • Fermeture automatique après x secondes

Avec ce script, sans intervention de l'utilisateur, la nouvelle fenêtre se ferme de façon automatique après 4 secondes. En cliquant sur le bouton, l'utilisateur interrompt prématurément le compteur et ferme la fenêtre. Avec ce système, on est certain que le nouvelle fenêtre sera fermée.

La page test.htm devient testc.htm :

<HTML>
<BODY onLoad='compt=setTimeout("self.close();",4000)'>
<H1>Ceci est un test</H1>
<FORM>
<INPUT TYPE="button" value=" Continuer " onClick="clearTimeout(compt);self.close();">
</FORM>
</BODY>
</HTML>

Dans la page de départ :

<FORM>
<INPUT TYPE ="button" value="Ouvrir une nouvelle fenêtre"
onClick="open('testc.htm', 'new', 'width=300,height=150,toolbar=no,location=no,
directories=no,status=no,menubar=no,scrollbars=no,resizable=no')">

(sans espaces ni passage à la ligne)
</FORM>

  • Ouverture en cliquant sur un lien ou une image

On ajoute simplement le "onClick=open..." à la balise <A> du lien ou de l'image. Dans la page de départ, on a :

<A HREF="#" onClick="open('testc.htm', '', 'width=300,height=150,toolbar=no,location=no,directories=no,status=no,menubar=
no,scrollbar=no,resizable=no')">lien de test</A>
(sans espaces ni passage à la ligne)

La fermeture automatique est particulièrement utile ici car si l'utilisateur clique quand même, la nouvelle fenêtre disparaît derrière la fenêtre de départ et risque donc de ne pas être fermée.

  • Ouverture par survol du lien (Javascript 1.0)

On utilise ici onmouseOver. Pour rappel, Javascript 1.0 donc compatible Explorer 3.0. Dans la page de départ, on a :

<A HREF="#" onmouseOver="open('testc.htm', '', 'width=300,height=150,toolbar=no,location=no,directories=no,status=no,menubar=
no,scrollbar=no,resizable=no')">lien de test</A>
(sans espaces ni passage à la ligne)

  • Ouverture par survol du lien et fermeture en quittant le lien (Javascript 1.1)

On utilise ici onmouseOver et onmouseOut. Pour rappel, onmouseOver est du Javascript 1.1 et ne fonctionne donc pas sous Explorer 3.0. Dans la page de départ, on a :

<A HREF="#" onmouseOver="open('test.htm', '', 'width=300,height=150,toolbar=no,location=no,directories=no,status=no,menubar=
no,scrollbar=no,resizable=no')" onmouseOut="self.close()">lien de test</A>

(sans espaces ni passage à la ligne)

  • Ecrire dans la nouvelle fenêtre

On passe par l'ouverture d'un nouvelle fenêtre par l'appel d'une fonction. Dans la page de départ :

<SCRIPT LANGUAGE="Javascript">
<!--
function opnw(){ msg=window.open("","","width=300,height=50,toolbar=no,location=no,directories=no,
status=no,menubar=no,scrollbars=no,resizable=no");
msg.document.write('<HTML> <BODY>' + '<CENTER><H1>Ceci est un test<H1></CENTER>' + '</BODY></HTML>')
// sans espaces ni passage à la ligne
}
// -->
</SCRIPT>


7.4 Généralités sur l'objet string


Intéressons nous à la manipulation des caractères. On signale une limitation de la longueur des strings à 50/80 caractères. Cette limitation du compilateur Javascript peut toujours être contournée par l'emploi de signes + et la concaténation.

Instruction

Description

length

C'est un entier qui indique la longueur de la chaîne de caractères.

charAt()

Méthode qui permet d'accéder à un caractère isolé d'une chaîne.

indexOf()

Méthode qui renvoie la position d'une chaîne partielle à partir d'une position déterminée (en commençant au début de la chaîne pricipale soit en position 0).

LastIndexOf()

Méthode qui renvoie la position d'une chaîne partielle à partir d'une position déterminée (en commençant à la fin soit en position length moins 1).

substring(x,y)

Méthode qui renvoie un string partiel situé entre l position x et la position y-1.

toLowerCase()

Transforme toutes les lettres en minuscules.

toUpperCase()

Transforme toutes les lettres en Majuscules.


7.5 La propriété length


La propriété length retourne un entier qui indique le nombre d'éléments dans une chaîne de caractères. Si la chaîne est vide (" "), le nombre est zéro. La syntaxe est simple : x=variable.length; x=("chaîne de caractères").length;. La propriété length ne sert pas que pour les Strings, mais aussi pour connaître la longueur ou le nombre d'éléments de formulaires, de boutons radio, de cases à cocher, d'options, de frames "enfants", d'ancres, de etc.


7.6 La méthode CharAt()


Il faut d'abord bien noter que les caractères sont comptés de gauche à droite et que la position du premier caractère est 0. La position du dernier caractère est donc la longueur (length) de la chaîne de caractère moins 1. Si la position que vous indiquez est inférieure à zéro ou plus grande que la longueur moins 1, Javascript retourne une chaîne vide. La syntaxe de charAt() est : chaîne_réponse = chaîme_départ.charAt(x); où x est un entier compris entre 0 et la longueur de la chaîne à analyser moins 1. Notez les exemples suivants :

var str="Javascript";
var chr=str.charAt(0);
var chr="Javascript".charAt(0);
ou var chr=charAt(str,0);
ou var chr=charAt("Javascript",0);

La réponse est "J".

var str="Javascript";
var chr=str.charAt(9);
var chr=charAt(str,9);

La réponse est "t".

var str="Javascript";
var chr=charAt(str,13);

La réponse est "" soit vide.


7.7 Les méthodes indexOf() et lastIndexOf()


La première méthode renvoie la position, soit x, d'un string partiel (lettre unique, groupe de lettres ou mot) dans une chaîne de caractères en commençant à la position indiquée par y. Cela vous permet, par exemple, de voir si une lettre, un groupe de lettres ou un mot existe dans une phrase.

variable="chaîne_de_caractères";
var="string_partiel";
x=variable.indexOf(var,y);

où y est la position à partir de laquelle la recherche de gauche vers la droite doit commencer. Cela peut être tout entier compris entre 0 et la longueur - 1 de la chaîne de caractères à analyser. Si y n'est pas spécifié, la recherche commencera par défaut à la position 0. Si le string partiel n'est pas trouvé dans la chaîne de caractères à analyser, la valeur retournée sera égale à -1. Quelques exemples :

variable="Javascript"
var="script"
x=variable.indexOf(var,0);

x vaut 4
variable="VanlanckerLuc&ccim.be"
var="@"
x=variable.indexOf(var);

x vaut -1

La deuxième méthode est fort semblable à indexOf() sauf que la recherche va cette fois de droite à gauche (en commençant donc par la fin). La syntaxe ext en tous points identique sauf que y signale une position située vers la fin de la chaîne de caractères. x=variable.lastIndexOf(var,y); . Les exemples suivants montrent la différence entre index0f() et lastIndexOf() : notez que même lorsqu'on commence à lire de la fin de la chaîne, la position retournée est comptée depuis le début de la chaîne avec le comptage commençant à zéro.

variable="Javascript"
var="a"
x=variable.indexOf(var,0);
ici x vaut 1 soit la position du premier a.
x=variable.lastIndexOf(var,9); ici x vaut 3 soit la position du second a.


7.8 La méthode substring()


La méthode substring() est du même genre que indexOf(), lastIndexOf() et charAt().Elle sera particulièrement utile, par exemple, pour prendre différentes données dans une longue chaîne de caractères.

variable = "chaîne de caractères"
resultat=variable.substring(x,y)

où resultat est un sous ensemble de la chaîne de caractère (ou de la variable). Les x et y sont des entiers compris entre 0 et la longueur moins 1 de la chaîne de caractères. Si x est inférieur à y, la valeur retournée commence à la position x et se termine à la position y-1. Si x est supérieur à y, la valeur retournée commence à la position y et se termine à la position x-1. En fait, ceci donne le même résultat et il est équivalent d'écrire par exemple substring(3,6) ou substring(6,3). Si x est égal à y, substring() retourne une chaîne vide. Quelques exemples :

str="Javascript";
str1=str.substring(0,4);
str1="Java"; soit les positions 0,1,2 et 3.
str2="Javascript".substring(0,4); str2="Java"; soit les positions 0,1,2 et 3.
str3=str.substring(6,9); str3="rip"; soit les positions 6,7 et 8.


7.9 Les méthodes toLowerCase() et toUpperCase()


La méthode toLowerCase() affiche toutes les majuscules d'une chaîne de caractères variable2 en minuscules. L'autre méthode affiche toutes les minuscules d'une chaîne de caractères variable2 en majuscules.

variable2="chaîne de caractères";
variable1=variable2.toLowerCase();

str="JavaScript";
str1=str.toLowerCase();
str1="javascript";

L'utilité de ces 2 méthodes ne saute pas aux yeux. Il faut se rappeler que Javascript est case sensitive. Ainsi une recherche sur Euro ne donnera pas le même résultat que sur euro ou EUro. Ainsi, pour les bases de données, il est prudent de tout convertir en minuscules (ou en majuscules). A fortiori, pour certaines informations des utilisateurs introduites par le biais d'un formulaire.


7.10 Les méthodes de l'objet math


x=Math.abs(y); La méthode abs() renvoie la valeur absolue (valeur positive) de y. Il supprime en quelque sorte le signe négatif d'un nombre.

y = 4;
x = math.abs(y);
x = Math.abs(4);
x = math.abs(-4);
ont comme résultat x = 4

x=Math.ceil(y); La méthode ceil() renvoie l'entier supérieur ou égal à y. x=Math.floor(y); La méthode floor() renvoie l'entier inférieur ou égal à y. Ces fonctions n'arrondissent pas le nombre.

y=1.01;
x=Math.ceil(y);
a comme résultat 2.

y=1.999;
x=Math.floor(y);
a comme résultat 1.

x=Math.round(y); La méthode round() arrondit le nombre à l'entier le plus proche.

y=20.355; x=Math.round(y); a comme résultat x=20;
x=(Math.round(y*100))/100; et dans ce cas x=20.36;

x=Math.max(y,z);

La méthode max(y,z) renvoie le plus grand des
2 nombres y et z. y=20; z=10; x=Math.max(y,z);
a comme résultat x=20;

x=Math.min(y,z);

La méthode min(y,z) renvoie le plus petit des
2 nombres y et z. y=20; z=10; x=Math.min(y,z);
a comme résultat x=10;

x=Math.pow(y,z); La méthode pow() calcule la valeur d'un nombre y à la puissance z.
y=2; z=8; x=Math.pow(y,z); a comme résultat 256.

x=Math.random(); La méthode random() renvoie la valeur d'un nombre aléatoire choisi entre 0 et 1. Cela ne fonctionne que sous Unix.

x=Math.sqrt(y); La méthode sqrt() renvoie la racine carrée de y.
y=25; x=Math.sqrt(y); a comme résultat x=5;

x=parseFloat("variable"); Cette fonction convertit une chaîne contenant un nombre en une valeur à virgule flottante. Elle retourne les chiffres derrière la virgule d'un nombre. Le résultat risque d'être surprenant si Javascript rencontre autre chose dans la chaîne que des nombres, les signes + et -, le point décimal ou un exposant. S'il trouve un caractère "étranger", la fonction ne prendra en compte que les caractères avant le caractère "étranger". Si le premier caractère n'est pas un caractère admis, x sera égal à 0 sous Windows et à "NaN" sur les autres systèmes.

str0 = '-.12345';
str1 = '$5.50';
x0 = parseFloat(str0);
x1 = parseFloat(str1);
x0 = -.12345;
x1 = 0 ou "NaN";

x=parseInt(variable); Retourne la partie entière d'un nombre avec une virgule.
str='1.2345'; x=parseInt(str); x=1;

x=eval(variable); Cette fonction évalue une chaîne de caractère sous forme de valeur numérique. On peut stocker dans la chaîne des opérations numériques, des opérations de comparaison, des instructions et même des fonctions.

str='5 + 10'; x=eval(str); a comme résultat x=15;

Pour les matheux :

x=Math.PI;
x=Math.sin(y);
x=Math.asin(y);
x=Math.cos(y);
x=Math.acos(y);
x=Math.tan(y);
x=Math.atan(y);

x=Math.exp(y);
x=Math.log(y);
x=Math.LN2;
x=Math.LN10;
x=Math.E;
x=Math.LOG2E;
x=Math.LOG10E;

[ HTML Language | Javascript Tutorial | Mobile Communications ]

©

Contact Information