Fermer la fenêtre – Comment déterminer comment la fenêtre a été ouverte?

Sur une page, j'ai un lien hypertexte avec target="_blank" .

Sur la page cible, j'ai un bouton "Fermer" qui utilise JS pour fermer le nouvel onglet / fenêtre.

  1. Si l'utilisateur clique sur le lien hypertexte, je peux utiliser JS pour fermer la fenêtre ouverte. Génial!

  2. Si l'utilisateur clique avec le bouton droit de la souris sur le lien et sélectionne "Ouvrir dans un nouvel onglet", mon événement JS ne peut pas fermer la fenêtre. Huer. 🙁

Je comprends les raisons de cela, mais dans le deuxième cas, je ne voudrais simplement pas afficher le bouton "Fermer" si la fenêtre ne peut pas être fermée par un Javascript.

Donc, ma question: comment puis-je déterminer si la fenêtre peut être fermée avec Javascript?

N'utilisez pas target="_blank" , utilisez target="popup1" . Ensuite, dans votre nouvel onglet, le détecter avec:

 if(window.name == "popup1") { document.body.className += " closeable"; } 

Alors:

 <style> .closeable #closebutton {display:block} </style>