Maison >interface Web >js tutoriel >Pourquoi `window.close()` et `self.close()` ne parviennent-ils pas à fermer Chrome Windows ?
Window.close et Self.close Échec de la fermeture de Chrome Windows : une analyse complète
Invocation de window.close() ou self.close () dans le code JavaScript peut ne pas fermer la fenêtre dans Chrome. Cette divergence provient d'une idée fausse courante selon laquelle Chrome interdit aux scripts de fermer les fenêtres à moins qu'ils n'aient été créés par un script. Même si cela est faux, ces méthodes peuvent ne pas fonctionner comme prévu. Cet article examine les raisons sous-jacentes et explore les solutions potentielles.
Restrictions de sécurité
Les navigateurs modernes ont mis en œuvre des mesures de sécurité pour empêcher les scripts malveillants de fermer les fenêtres sans discernement. Conformément à la spécification window.close(), JavaScript n'est généralement pas autorisé à fermer une fenêtre qui n'a pas été créée par le même script. Cette restriction vise à limiter les exploits de sécurité et les désagréments pour les utilisateurs.
Mise en œuvre de Firefox
Firefox adhère strictement à ces directives de sécurité, interdisant explicitement aux scripts de fermer des fenêtres qui n'ont pas été ouvertes par scénario. Si un script Greasemonkey/Tampermonkey tente d'utiliser window.close() dans Firefox, il déclenchera le message d'erreur : "Les scripts ne peuvent pas fermer les fenêtres qui n'ont pas été ouvertes par le script."
Implémentation de Chrome
Chrome, en revanche, permet aux scripts de fermer des fenêtres qui n'ont pas été créées par un script. Cependant, cette exception ne s'étend pas aux contextes de script utilisateur comme Greasemonkey ou Tampermonkey. Les tentatives d'utilisation de window.close() à partir de ces contextes entraîneront un échec silencieux.
Solutions de contournement
Bien que les extensions Chrome et les modules complémentaires Firefox fournissent une solution fiable pour la fermeture Windows, il existe des solutions de contournement pirates pour l'utilisateur scripts :
Chrome :
Firefox :
Solution à long terme
L'approche la plus fiable consiste à créer une extension Chrome dédiée ou un module complémentaire Firefox. qui peut invoquer efficacement window.close(). Alternativement, les développeurs de scripts utilisateur pourraient envisager de soumettre une demande de fonctionnalité à Greasemonkey ou Tampermonkey pour la fonctionnalité intégrée de fermeture de fenêtre.
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!