Window.close() échoue dans Chrome : une mesure de sécurité
Dans le domaine du développement Web, il a été observé que l'invocation de window .close() ou self.close() en JavaScript a cessé de fermer la fenêtre ciblée dans le navigateur Chrome. Ce comportement découle d'une mesure de sécurité cruciale mise en œuvre par Chrome pour empêcher les codes malveillants et les pop-ups non sollicités de compromettre l'expérience de navigation des utilisateurs.
La fermeture des fenêtres est principalement limitée aux scripts qui ont généré ces fenêtres. Chrome adhère étroitement à ce principe, interdisant les fermetures arbitraires par des scripts externes. Cependant, une exception notable à cette règle est disponible uniquement pour le JavaScript généré par l'auteur, permettant la fermeture des fenêtres créées par le même script.
Mise en œuvre plus stricte de Firefox
Firefox , d'autre part, applique une politique plus stricte, interdisant la fermeture de fenêtres à moins que le script appelant n'ait explicitement créé la fenêtre à l'aide de la méthode window.open(). Toute tentative de contournement de cette restriction entraîne des messages d'erreur dans Firefox, tandis que Chrome opte pour un échec silencieux.
Atténuations pour les utilisateurs de Chrome
Pour relever ce défi dans Chrome, l'exploit "auto-redirection" a déjà été exploité. Cependant, cette technique est devenue largement inefficace dans les versions actuelles du navigateur. Néanmoins, une version modifiée de la stratégie reste viable pour une utilisation dans un ensemble contraint de circonstances. En utilisant Tampermonkey avec une autorisation explicite @grant, window.close() peut toujours être utilisé pour fermer des onglets supplémentaires (le cas échéant) dans Chrome.
Pour les utilisateurs de Firefox, la seule solution viable consiste à désactiver la sécurité intégrée. paramètres dans le navigateur. Cependant, cette pratique est fortement déconseillée en raison des risques de sécurité accrus associés à des configurations de navigateur affaiblies.
Solution et améliorations à long terme
L'approche la plus efficace pour contourner ce problème. La limitation permanente est de développer une extension Chrome ou un module complémentaire Firefox. Ces mécanismes offrent des capacités fiables de fermeture de fenêtre. De plus, suggérer une telle fonctionnalité sous forme de demande de fonctionnalité aux responsables de Greasemonkey et Tampermonkey pourrait entraîner des améliorations supplémentaires et une implémentation simplifiée pour les auteurs de scripts utilisateur.
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!