Modification des fenêtres contextuelles JavaScript de Chrome
- Catégorie: Google Chrome
Google mis en œuvre un changement dans le comportement de gestion des popups JavaScript de Chrome récemment qui restreint les popups JavaScript.
Le changement, qui a déjà atterri dans Chrome Canary et Dev, améliore la gestion des boîtes de dialogue d'alerte JavaScript (), de confirmation () et d'invite () que les pages peuvent lancer dans le navigateur.
Jusqu'à présent, Chrome, et cela est toujours vrai pour Chrome Stable et Beta, gérait ces boîtes de dialogue JavaScript par fenêtre de navigateur.
Cela signifie que les fenêtres contextuelles peuvent verrouiller le navigateur jusqu'à ce que les utilisateurs réagissent à la fenêtre contextuelle en question. Bien que cela puisse être utile dans certaines situations, cela signifiait souvent que les sites utilisaient ces options pour verrouiller le navigateur et forcer les utilisateurs à interagir avec la fenêtre contextuelle.
Cela allait des sites de farces qui vous mettaient dans une boucle sans fin de popups aux sites d'attaque qui demandaient aux utilisateurs de payer pour supprimer le popup et ramener le navigateur à son état par défaut.
Modification des fenêtres contextuelles JavaScript de Chrome
Google a pris la décision de faire fonctionner ces boîtes de dialogue JavaScript sur une base par onglet dans le navigateur, et non plus sur une base par fenêtre. Ce que cela signifie pour les utilisateurs, c'est qu'il est désormais possible de rejeter toute fenêtre contextuelle lancée par ces fonctions JavaScript en changeant simplement d'onglet.
Cela supprime immédiatement le popup. Les utilisateurs n'ont plus besoin d'interagir directement avec la fenêtre contextuelle, ni même de forcer la mise à mort du processus Chrome pour reprendre le contrôle du navigateur Web.
L'entreprise Remarques sur le document de conception officiel:
Si un onglet est le premier onglet, nous présenterons la boîte de dialogue de l'onglet. Les boîtes de dialogue d'alerte / de confirmation / d'invite seraient alors affichées et ciblées pour les interactions de l'utilisateur. Si l'utilisateur interagit avec eux et effectue l'interaction utilisateur pour laquelle ils sont conçus, rien de notable ne se produira.
Cependant, si l'utilisateur passait à un autre onglet, déplaçant l'onglet en arrière-plan et ne le faisant pas avant tout, nous fermerions la boîte de dialogue. Pour les boîtes de dialogue d'alerte, le JavaScript n'attend pas de réponse, nous reviendrons donc au JavaScript. Pour les dialogues de confirmation et d'invite, nous renverrions respectivement false et null, indiquant une annulation. (Notez que ce sont les mêmes valeurs que nous renvoyons actuellement pour les boîtes de dialogue qui sont supprimées par le paramètre «Empêcher cette page de créer des boîtes de dialogue supplémentaires».)
Pour tous les autres onglets, nous neutraliserions la plupart des dialogues. Pour les boîtes de dialogue d'alerte, nous l'ajouterions à une file d'attente pour cet onglet, et afficherions la file d'attente des boîtes de dialogue la prochaine fois que l'onglet est au premier plan, mais nous permettrions immédiatement au JavaScript de cet onglet de reprendre. Pour les boîtes de dialogue de confirmation et d'invite, nous retournerions immédiatement false / null pour empêcher le JavaScript de se bloquer, car le blocage de l'exécution du script casserait des onglets arbitraires, très probablement celui avec lequel l'utilisateur interagit.
Le changement devrait mettre un terme aux webmasters qui utilisent ces fonctions JavaScript pour ennuyer ou attaquer les utilisateurs du navigateur Chrome.
Google note que le changement affectera tous les sites qui utilisent ces boîtes de dialogue JavaScript. La société suggère que les sites mettent en œuvre des alternatives, par exemple en utilisant l'API Notifications à la place.
Cela signifie-t-il que Google modifiera l'utilisation d'alert () par Google Agenda pour les notifications? Seul le temps nous le dira.
Si vous regardez d'autres navigateurs, vous remarquerez qu'ils ont implémenté la fonctionnalité il y a des années. Firefox et Opera ont tous deux mis en œuvre cette option depuis des années.
Maintenant lis : Extension Popup Blocker pour Google Chrome