J'ai toujours un problème lorsque j'essaie de fermer une fenêtre avec la méthode window.close()
du Javascript, alors que le navigateur affiche le message ci-dessous sur la console:
"Scripts may close only the windows that were opened by it."
Cela se produit dans toutes les parties de la page. Je peux utiliser directement un lien, un bouton ou un script, mais ce message est toujours affiché.
J'ai essayé de remplacer la méthode window.close();
pour les fonctions (ou leurs variantes) ci-dessous, mais rien ne s'est passé de nouveau:
window.open('', '_self', '');
window.close();
J'ai cherché de nombreuses pages du Web sur Google et ici sur le débordement de pile, mais rien n'a suggéré de résoudre mon problème.
Après de nombreuses tentatives et "coups de pied", j'ai changé ma façon de tester ce contrôleur. Ensuite, j'ai découvert que le problème se produit toujours et que j'ai rouvert la page du raccourci Ctrl + Shift + T
dans Chrome. La page a donc été exécutée, mais sans référence à la fenêtre parente, et parce que cela ne peut pas être fermé.
Les messages d'erreur ne sont pas plus clairs que ceci:
"Scripts may close only the windows that were opened by it."
Si votre script n'a pas lancé l'ouverture de la fenêtre (avec quelque chose comme window.open), le script de cette fenêtre n'est pas autorisé à la fermer. C'est une sécurité pour empêcher un site Web de prendre le contrôle de votre navigateur et de fermer des fenêtres.
Vous ne pouvez pas fermer une fenêtre en cours ou une fenêtre ou une page ouverte à l'aide de '_self' Mais vous pouvez le faire.
var customWindow = window.open('', '_blank', '');
customWindow.close();
Le code ci-dessous a fonctionné pour moi :)
window.open('your current page URL', '_self', '');
window.close();
Ceci ne fonctionne pas. Certains sites Web fonctionnent bien. Mais pour les sites youtube.com et yahoo.com, le code d'application ci-dessus ne fonctionne pas. S'il vous plaît suggérer des idées.