Imaginons que vous souhaitiez ouvrir une fenêtre pop-up en mode plein écran. Jusqu'à présent, l'ouverture d'une fenêtre pop-up en plein écran se composait de deux étapes:
- Dans la fenêtre principale de l'application, en appelant la méthode
window.open()
qui nécessite un geste de l'utilisateur, comme le clic sur un bouton Ouvrir une fenêtre pop-up. - Dans la fenêtre pop-up, en appelant la méthode
Element.requestFullscreen()
, qui nécessite également un geste de l'utilisateur, comme le clic sur un bouton Passer en mode plein écran.
Une nouvelle phase d'évaluation de l'origine est désormais disponible à partir de Chrome 119 (date de sortie stable) : 31 octobre 2023, et jusqu'à Chrome 122 (date de sortie stable) : 31 octobre 2023 pour ouvrir des fenêtres pop-up en mode plein écran en une seule étape. Pour vous inscrire, cliquez sur S'inscrire sur la page de destination de l'essai de l'origine Ouvrir les pop-ups en tant que fenêtres plein écran.
En plus du test d'origine, vous pouvez également effectuer des tests en local en définissant l'indicateur chrome://flags/#fullscreen-popup-windows
sur Enabled (Activé).
Ouverture de fenêtres pop-up en plein écran sur l'écran actuel
Cette nouvelle fonctionnalité est contrôlée par l'autorisation window-management
. Une fois que l'utilisateur a accordé l'autorisation, vous pouvez ouvrir une fenêtre pop-up en plein écran, comme dans l'exemple suivant.
document.querySelector('.fullscreen-popoup-button').addEventListener('click', async (e) => {
if ((await navigator.permissions.query({name: 'window-management'})).state !== 'granted') {
// Permission not granted. Call `window.getScreenDetails()` to prompt.
await window.getScreenDetails();
}
// Permission granted. Open the fullscreen popup window.
window.open('https://example.com/popup.html', '_blank', 'popup,fullscreen');
});
Dans la dernière ligne de l'exemple de code, le premier paramètre est l'url
à ouvrir dans la fenêtre pop-up. Le deuxième paramètre est target
, avec la valeur spéciale _blank
.
Le troisième paramètre est destiné à windowFeatures
, une chaîne séparée par des virgules avec la valeur popup
pour ouvrir une fenêtre pop-up et la nouvelle valeur fullscreen
pour ouvrir la fenêtre pop-up en mode plein écran. Cela fonctionne avec un seul geste utilisateur et peut donc être activé en un seul clic sur un bouton.
Ouverture de fenêtres pop-up en plein écran sur d'autres écrans
Cette fonctionnalité est particulièrement utile avec l'API Window Management, qui vous permet d'obtenir des informations sur tous les écrans que l'utilisateur a connectés à son ordinateur. Par exemple, pour ouvrir une fenêtre pop-up en plein écran sur un autre écran que celui de l'utilisateur, vous devez d'abord trouver l'autre écran, puis transmettre ses valeurs availLeft
, availTop
, availWidth
et availHeight
aux valeurs left
, top
, width
et height
correspondantes de la chaîne windowFeatures
.
document.querySelector('.fullscreen-popoup-button-other-screen').addEventListener('click', async (e) => {
const screenDetails = await window.getScreenDetails();
const otherScreen = screenDetails.screens.find(s => s !== screenDetails.currentScreen);
window.open('https://example.com/popup.html', '_blank', `left=${otherScreen.availLeft},` +
`top=${otherScreen.availTop},` +
`width=${otherScreen.availWidth},` +
`height=${otherScreen.availHeight},` +
`fullscreen`);
});
Démo
Essayez les fenêtres pop-up en plein écran dans la démonstration et consultez le code source. Veillez à cocher la case Plein écran et le bouton Pop-up plein écran. Si possible, testez la démonstration avec plusieurs écrans connectés à votre appareil.
Liens associés
- Explication publique
- Enregistrement ChromeStatus
- Bug Chromium
- Examen du TAG
- Position de Mozilla concernant les normes
- Position de WebKit concernant les normes
Remerciements
Cet article a été relu par Brad Triebwasser, Hakan Isbiliroglu, Mike Wasserman et Rachel Andrew.