L'objet window en JavaScript
Introduction
Comme la moindre action sur un document est délimitée par la fenêtre, c'est le premier (ou le plus haut) objet au niveau hiérarchique. L'objet window délimite la zone de la fenêtre de l'explorateur où les documents html apparaissent. Dès le moment où une fenêtre de l'explorateur est ouverte (même si aucun document n'est chargé), l'objet window est défini dans le modèle courant en mémoire.
Dans le cas d'emploi de plusieurs cadres (frames), chaque cadre est une fenêtre.
De plus, l'influence d'une fenêtre s'étend aux dimensions, barres de défilement, mais aussi barres d'outils, barres d'état et de menu (sauf pour les MAC) qui englobent cette fenêtre. Cet ensemble d'éléments s'appelle chrome. Tous les explorateurs ne possèdent pas le contrôle complet de ce chrome, mais le langage JavaScript nous permet de notifier point par point la configuration désirée.
Création d'une fenêtre
La première fenêtre ne peut être générée par un script. C'est par l'intermédiaire du navigateur (internet explorer, netscape, etc.), ou en cliquant sur un lien (dans un e-mail par exemple), que l'on ouvre une fenêtre. Le langage JavaScript nous permet ensuite la création de nouvelles fenêtres, à l'aide de certains éléments de cette fenêtre principale.
La méthode qui nous permet la création d'une nouvelle fenêtre est window.open().
Syntaxe
var nom_variable = window.open( "URL", "nom_fenêtre" [, "param1"] [, "param2"] )
- URL se limite au nom de la page (suivis de son extension) si cette dernière se trouve dans le même répertoire.
- nom_fenêtre est indispensable. Il ne s'agit pas ici du nom de la page, ni du titre donné dans la balise <title> de cette page: ce nom est la valeur que renvoie la méthode open() de l'objet window. Il nous sera utile par exemple pour des attributs <target> dans des liens.
- param1 est entre crochets, il est donc facultatif. Il s'agit d'une chaîne composée d'une liste d'expressions se comportant comme des balises HTML et séparées par des virgules.
- param2 est le replaceFlag.
Exemple
var nouvelle_page = window.open( "page2.html", "p2", "height=100, width=200" );
Remarques
- Nous pouvons constater qu'il s'agit d'une affectation de la fonction window.open() à la variable nouvelle_page. La valeur window.open() est donc la page page2.htm suivant les paramètres de la fenêtre en hauteur et largeur. nouvelle_page peut donc être utilisée comme variable dans le document.
- Nous pouvons fermer la fenêtre par la méthode close(). Dans le cas de notre exemple, nous devrions avoir nouvelle_page.close().
Exemple complet
Dans l'en-tête:
var nfenetre; function nouv_fen (){ nfenetre = window.open ("demo/javascript/001.html","exemple","height=600,width=800") } function ferm_fen (){ if (nouv_fen){ nfenetre.close () nouv_fen = null } }
Dans le corps:
Résultat:
Propriétés et méthodes
Accès à la fenêtre
Nous pouvons faire référence à l'objet window de deux manières afin d'accéder à ses propriétés et méthodes:
En le nommant
Cela nous permet de désigner de manière spécifique la fenêtre vers laquelle nous pointons. C'est la méthode que nous utiliserons le plus souvent.
Syntaxe:
window.nom_propriété
window.nom_méthode ([paramètres])
Par son synonyme
Lorsque le script qui effectue la référence pointe vers la fenêtre qui supporte le document, un synonyme (self) est employé pour l'objet window. Self indique donc la fenêtre courante qui supporte le script, ce qui rend la lecture de ce dernier plus aisée dans les cas d'emploi de fenêtres (cadres) multiples (multiframes).
Syntaxe:
self.nom_propriété
self.nom_méthode ([paramètres])
Remarque
Il existe aussi une troisième méthode:
Lorsqu'un script est exécuté, l'objet window est toujours présent. Il n'est donc pas toujours nécessaire lorsque l'on fait référence à un objet à l'intérieur de la fenêtre courante.
nom_propriété
nom_méthode ([paramètres])
Propriété window.status
Nous pouvons, par le JavaScript, paramètrer l'affichage de texte dans la barre de statut. Pour rappel, la barre de statut se trouve en bas de la fenêtre de l'explorateur, et affiche diverses informations (l'URL d'un lien au survol de celui-ci, etc.).
Il peut s'avérer intéressant, par exemple, de fournir une description de la page vers laquelle pointe le lien au lieu de son adresse, ou d'afficher divers messages destinés au visiteur.
Nous pouvons le réaliser grâce au manipulateur d'événement onMouseOver d'un objet link (lien).Il n'est donc pas nécessaire de définir une nouvelle fonction, ou même d'inclure les balises de script dans la page.
Exemple :
<a href="/infobrol.html" onMouseOver="window.status='Infobrol: Page de test.'; return true;">Résultat</a>
Remarque: nous devons aussi prévoir un manipulateur d'évènement onMouseOut afin de rendre vierge la barre de statut.
onMouseOver="window.status='Infobrol: Page de test.'; return true;" onmouseout="window.status=''; return true;" onclick="window.status=''; return true;"
Document créé le 19/03/2002, dernière modification le 07/04/2023
Source du document imprimé : https://www.gaudry.be/javascript-window.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.