Comme indiqué dans le titre, voici une astuce de derrière les fagots, afin de ne plus "écraser" une popup déja ouverte, même sur une autre page.

Le souci

Lorsque l'on ouvre un popup avec open, nous récupérons une référence sur la nouvelle fenêtre créée.
En général, cela nous suffit amplement pour faire nos différents traitements.
Ex : ajouter du contenu dans la popup.
Problème, si nous actualisons la page qui crée le popup, ou si nous naviguons de pages en pages et que nous voulons conserver notre popup intacte, nous n'avons plus la main sur cette référence.

Et oui, javascript, pour des raisons de sécurité, ne permet pas de "prendre la main" directement sur une fenêtre que nous n'avons pas créée dans notre contexte.

La feinte molle

Pour pallier à ce petit ennui, et pour contourner cette sécurité, il existe (mal)heureusement une fourberie :

var LocalPop = window.open("", Nom, Parametres);
if (LocalPop.location.href == "about:blank") {
   LocalPop.location = Entete + Page;
 
}
  1. Ouverture d'un popup sans url
  2. Récupère l'url de la popup ainsi "créée"
  3. Si l'url est "vide", on lui affecte sa vraie valeur
  4. Sinon, c'est que l'url à déja été créée.


Et voila ;)