Limitations de fermeture de fenêtre JavaScript dans Chrome : une mesure de sécurité restrictive
Alors que JavaScript propose window.close() et self.close() méthodes pour fermer les fenêtres, ces outils se sont heurtés à des obstacles dans Chrome, où la fermeture des fenêtres à l'aide de scripts n'est pas toujours simple.
Contrôle de fermeture provenant d'un script
En raison de problèmes de sécurité, Chrome a mis en œuvre une politique qui limite la capacité de JavaScript à fermer les fenêtres. Il autorise la fermeture des fenêtres uniquement si elles ont été créées par le même script invoquant la fermeture. Cette restriction empêche les scripts malveillants de fermer arbitrairement les fenêtres et de perturber l'expérience utilisateur.
Adhésion à Firefox
Firefox adhère strictement à cette restriction, pour toute tentative de fermeture de fenêtres à partir de scripts. rencontrer des erreurs. En revanche, Chrome autorise une exception pour les scripts utilisateur, mais sans invite de confirmation.
Solutions de contournement hacky
L'exploit d'auto-redirection de Chrome autorisait autrefois la fermeture des fenêtres, mais cette méthode a été pour la plupart bloqué. Une solution de contournement potentielle, spécifique à TamperMonkey, consiste à utiliser @grant window.close dans l'en-tête du script. Cependant, cela ne s'applique pas à tous les cas et nécessite des onglets fraîchement ouverts sans historique de navigation.
Implications en matière de sécurité et solutions à long terme
Les risques de sécurité posés par window.close sans restrictions appropriées le rend impropre à un usage général. La solution recommandée consiste à développer des extensions Chrome ou des modules complémentaires Firefox, qui peuvent fermer les fenêtres de manière fiable. Greasemonkey et Tampermonkey pourraient potentiellement fournir cette fonctionnalité via des extensions API.
En dernier recours, pour les scripts personnels, la désactivation du paramètre allow_scripts_to_close_windows dans Firefox peut activer la fermeture des fenêtres. Cependant, il convient d'être prudent, car cela compromet la sécurité du navigateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!