6
votes

Fermer l'onglet actuel du navigateur en cliquant sur le bouton, en utilisant reactjs

Est-il possible de fermer l'onglet actuel du navigateur en appuyant sur le bouton, en utilisant reactjs? J'ai essayé window.close () et self.close () mais aucune des méthodes JavaScript ne semble fonctionner. Je ne veux pas de l'événement de fermeture de fenêtre dans React. Je souhaite fermer l'onglet du navigateur lui-même. window.close () ne peut être utilisé que lorsque window.open () est utilisé.


2 commentaires

@MohammadMalek cet événement sera appelé lorsque l'utilisateur ferme explicitement l'onglet du navigateur. Si j'ai bien compris. Mais je veux fermer l'onglet du navigateur en cliquant sur un bouton.


Pour des raisons de sécurité, vous ne pouvez fermer que les onglets que vous avez ouverts à partir de votre code, c'est ce que vous indique le message d'erreur que vous avez collé


3 Réponses :


0
votes

Vous ne pouvez fermer que ces onglets que vous avez générés par window.open () pour le moment.


0 commentaires

5
votes

Le navigateur n'est pas autorisé à fermer l'onglet non auto-ouvert par window.open () c'est donc une sorte de contournement et de convaincre le navigateur qu'il est ouvert par vous

en ouvrant une page vide dans la même page puis en la fermant.

Vous pouvez essayer ça

window.open("about:blank", "_self");
window.close();


1 commentaires

Ouais ... Je pensais que la solution devait être une sorte de truc comme vous l'avez mentionné, mais je ne connaissais pas le code exact pour ouvrir la fenêtre du navigateur qui faisait référence à la même fenêtre déjà ouverte indirectement par React ou un autre fichier. J'essaierai ceci.



0
votes

La réponse finale est sans ouvrir un onglet, vous ne pouvez pas le fermer en utilisant window.close (). J'ai cherché partout, alors je trouve un truc. si vous utilisez des hooks reactjs, ouvrez simplement la même url dans le même onglet en utilisant useEffect comme ceci-

useEffect(() => {
window.open("https://xyz.abc/", "_self", "");
console.log("open window");
}, []);

Ensuite, faites fonction de close et ajoutez un clic pour fermer () qui a window. close ();

Cela fonctionnera certainement!


0 commentaires