Javascript
L'objet window
Home

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. Soit
alert(), confirm(), et prompt(),
- et celles du ou des minuteries. Soit setTimeout() et clearTimeout().

Une autre série, ayant trait aux frames, fait l'objet d'un chapitre consacré à ce sujet :
- ce sont frames[], length, parent , opener et top.

Une série a trait à la barre d'état qui est abordée ci-après :
- ce sont status et defaultStatus.

Une série pour l'ouverture et la fermeture d'une fenêtre :
- ce sont open() et close().

Et enfin self qui renvoie à la fenêtre en cours.


 

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 de votre cru. Comme je suis myope comme une taupe, ce n'est pas ma partie préférée du Javascript mais c'est une opinion des plus subjective.

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 :

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

A voir ici
(simple survol)

Il est indispensable d'ajouter return true;


 

Ouverture et fermeture de fenêtres (théorie)

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 ''".

caractéristiques_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 c.-à-d. 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 (lapalissade). 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.


 

Ouverture et fermeture de fenêtres (exemples)
  Ouverture par un bouton (avec code dans le onClick)

Nous allons 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>
où self.close() fermera la fenêtre courante, c.-à-d. 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)

lien de test
(cliquez)

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.

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)

lien de test
(simple survol)


 

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

0n 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,scrollbars=no,resizable=no')" onmouseOut="self.close()">lien de test</A>
(sans espaces ni passage à la ligne)

Pour la compatibilité avec les lecteurs utilisant Explorer 3.0, il n'y a pas d'exemple ici.


 

  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>


Home