Académique Documents
Professionnel Documents
Culture Documents
Le principe et l’intérêt principal d’une API est de permettre à des personnes externes de pouvoir
réaliser des opérations complexes et cachant justement cette complexité.
Les API JavaScript vont pouvoir être classées dans deux grandes catégories :
• Les API intégrées aux navigateurs web et qu’on va donc pouvoir utiliser immédiatement
pour du développement web comme l’API DOM (Document Object Model) qui va nous
permettre de manipuler le HTML et le CSS d’une page, l’API Geolocation qui va nous
permettre de définir des données de géolocalisation ou encore l’API Canvas qui permet de
dessiner et de manipuler des graphiques dans une page ;
• Les API externes, proposées par certains logiciels ou sites comme la suite d’API Google
Map qui permettent d’intégrer et de manipuler des cartes dans nos pages web ou encore
l’API Twitter qui permet d’afficher une liste de tweets sur un site par exemple ou bien
l’API YouTube qui permet d’intégrer des vidéos sur un site.
Les objets suivants appartiennent au BOM et sont tous des enfants de Window :
• L’objet Navigator qui représente l’état et l’identité du navigateur et qu’on va utiliser avec
l’API Geolocation ;
• L’objet History qui permet de manipuler l’historique de navigation du navigateur
• L’objet Location qui fournit des informations relatives à l’URL de la page courante ;
• L’objet Screen qui nous permet d’examiner les propriétés de l’écran qui affiche la fenêtre
courante ;
• L’objet Document et le DOM dans son ensemble que nous étudierons en détail dans la
suite.
Propriétés, méthodes et fonctionnement de l’objet Window
LES PROPRIETES
Certaines propriétés et méthodes de l’objet Window vont tout de même ne pouvoir
s’appliquer qu’à la fenêtre globale et pas à l’onglet en particulier, et notamment celles liées à
la taille de la fenêtre.
Les propriétés outerHeight et outerWidth vont retourner la hauteur et la largeur de la fenêtre
du navigateur en comptant les options du navigateur.
Les propriétés innerHeight et innerWidth vont retourner la hauteur et la largeur de la partie
visible de la fenêtre de navigation (la partie dans laquelle le code est rendu).
document.getElementById('p2').innerHTML =
'Taille de la fenêtre (int) : ' + window.innerWidth + '*' +
window.innerHeight;
LES METHODES
La méthode open() nous permet d’ouvrir une certaine ressource dans une fenêtre, un onglet ou au
sein d’un élément iframe. On va passer en argument de cette méthode une URL qui correspond à
la ressource à charger.
let winSize = 'width=500, height=500';
Une fois une nouvelle fenêtre créée, on va pouvoir la redimensionner en ajoutant ou en enlevant à
sa taille actuelle un certain nombre de pixels grâce à la méthode resizeBy() ou en lui passant
une nouvelle taille avec resizeTo().
let b1 = document.getElementById('b1');
let b2 = document.getElementById('b2');
let b3 = document.getElementById('b3');
b1.addEventListener('click', openWindow);
b2.addEventListener('click', resizeWindowBy);
b3.addEventListener('click', resizeWindowTo);
function openWindow(){
//On recupère l'information renvoyée par open() dans une variable "fenetre"
fenetre = window.open('', '', winSize);
}
function resizeWindowBy(){
fenetre.resizeBy(200, 100);
}
function resizeWindowTo(){
fenetre.resizeTo(960, 720);
}
Notez que ces méthodes ne fonctionneront pas dans certains navigateurs lorsque
le code est exécuté en local (c’est-à-dire depuis un fichier hébergé sur notre
ordinateur) et lorsqu’on tente de redimensionner une fenêtre contenant un vrai
site.
En effet, la plupart des navigateurs dont Chrome bloquent ce genre de requêtes
considérées comme Cross-origin pour des raisons de sécurité. Pour contourner
cette limitation et voir le résultat de ces méthodes, il suffit de ne pas
renseigner d’URL dans la méthode open().
Nous allons également pouvoir de la même façon déplacer la fenêtre sur un espace
de travail avec les méthodes moveBy() qui va déplacer la fenêtre relativement à
sa position de départ et moveTo() qui va la déplacer de manière absolue, par
rapport à l’angle supérieur gauche de l’espace de travail.
b1.addEventListener('click', moveWindowBy);
b2.addEventListener('click', moveWindowTo);
function moveWindowBy(){
fenetre.moveBy(100, 100);//Déplace la fenêtre 100px à droite et 100px en bas
}
function moveWindowTo(){
fenetre.moveTo(0, 0);//Place la fenêtre contre le bord supérieur gauche
}
De la même manière et pour les mêmes raisons que pour les méthodes précédentes, ces
méthodes ne s’exécuteront pas dans certains navigateurs lors d’une exécution en local sur une
fenêtre contenant un site.
function moveWindowBy(){
fenetre.moveBy(100, 100);//Déplace la fenêtre 100px à droite et 100px en bas
}
function moveWindowTo(){
fenetre.moveTo(0, 0);//Place la fenêtre contre le bord supérieur gauche
}
De la même manière et pour les mêmes raisons que pour les méthodes précédentes,
ces méthodes ne s’exécuteront pas dans certains navigateurs lors d’une exécution
en local sur une fenêtre contenant un site.
b8.addEventListener('click', closeWindow);
function closeWindow(){
fenetre.close();
}
L’objet Window possède également des méthodes qui vont nous permettre d’afficher
des boites d’alerte, de dialogue ou de confirmation dans la fenêtre.
La méthode confirm(), quant-à-elle, ouvre une boite avec un message (facultatif) et deux
boutons pour l’utilisateur : un bouton Ok et un bouton Annuler.
Si l’utilisateur clique sur « Ok », le booléen true est renvoyé par la fonction ce qui va donc nous
permettre d’effectuer des actions en fonction du choix de l’utilisateur.
fenetre = window.open('https://www.google.com');
}