La fenêtre courante du navigateur est représentée pour JavaScript par l'objet window. Cette variable
est sous entendue à chaque fois que nous faisons appel à l'objet document qui n'est qu'une propriété
de window. En fait un appel à document est équivalent à un appel à window.document.
L'objet window possède quelques propriétés intéressantes :
document : nous l'avons déjà utilisé de nombreuses fois.
defaultStatus : chaîne de caractères représentant le contenu par défaut de la ligne
de statut.
status : chaîne de caractères permettant de modifier le contenu de la ligne de statut.
frames : un tableau contenant les différents cadres définis dans la fenêtre.
history : propriété représentant l'historique de navigation de la fenêtre; par exemple,
l'instruction history.go(-1); permet de revenir au contenu précédent de la fenêtre.
location : propriété représentant l'URL de la page affichée; on peut la modifier en
modifiant sa propriété href, ainsi l'instruction window.location.href="nouveau.html";
permet de charger le document nouveau.html.
Ouvrir une nouvelle fenêtre
L'objet window dispose d'une méthode open qui permet d'ouvrir une fenêtre fille. Sa forme
générale est la suivante :
nom = open(URL,nom_fenetre,paramètres,hist);
où :
URL représente sous forme de chaîne de caractères l'URL du document à charger dans la nouvelle fenêtre;
cette chaîne peut être vide, on obtient une fenêtre vide dans laquelle on pourra écrire avec JavaScript.
nom_fenetre est une chaîne de caractères permettant d'attribuer un nom à la fenêtre (utilisable
dans l'attribut TARGET d'une balise A)
paramètres est une chaîne de caractères représentant une liste de paramètres permettant de définir
l'aspect de la fenêtre; cette chaîne est une suite d'élément du type propriété=valeur séparés
par des virgules.
hist est une variable booléenne (true ou false) qui permet de déterminer si l'URL chargée doit
ou non créer une nouvelle entrée dans l'historique.
Les principales propriétés utilisables pour définir l'apparence de la fenêtre sont :
left : position horizontale du coin supérieur gauche
top : position verticale du coin supérieur gauche
height : hauteur totale en pixels
width : largeur totale en pixels
innerHeight : hauteur de la partie utile
innerWidth : largeur de la partie utile
location : égal à 1 ou 0 pour afficher ou non la ligne de saisie des URLs
menubar : égal à 1 ou 0 pour afficher ou non un menu
resizable : égal à 1 ou 0 pour indiquer si la fenêtre peut être redimensioonée
scrollbars : égal à 1 ou 0 pour indiquer si des ascenseurs doivent être affichés
status : égal à 1 ou 0 pour afficher ou non une ligne de statut
toolbar : égal à 1 ou 0 pour afficher ou non la barre d'outils
Exemple : tables de multiplication
L'exemple suivant montre
comment afficher le résultat d'une requête dans une fenêtre.
L'utilisateur choisit une table de multiplication et celle-ci s'affiche dans une nouvelle fenêtre
qui contient un bouton "Fermer" qui permet de la fermer.
Fenêtre principale
La fenêtre principale contient un simple formulaire permettant de choisir une table.
Création de la fenêtre fille
La fonction javascript envoi() est chargée de créer une nouvelle fenêtre et d'y afficher
la table de multiplication demandée.
On commence par récupérer la table demandée dans la variable facteur. S'il s'agit d'un
nombre, on ouvre une nouvelle fenêtre dans laquelle on affiche la table.
Cela nous donne le code suivant :
Pour écrire dans l'objet document de la nouvelle fenêtre fen, nous devons utiliser l'instruction
fen.document.write, car écrire simplement document.write provoquerait un effacement de la
fenêtre courante.
Lorsque le document de la nouvelle fenêtre est terminé, nous devons le fermer avec sa méthode
close() pour qu'une prochaine utilisation soit précédée d'un effacement.
Le bouton permettant de fermer la nouvelle fenêtre est associé à l'instruction JavaScript
self.close(). Il s'agit ici de la fermeture de la fenêtre et non du document.
Le mot self représente la fenêtre elle-même.