Ik heb een pagina waar producten op staan. Elk product heeft een knop waarmee je een editor opent in een new window, hierin kun je het product bewerken. Zodra je klaar bent met bewerken klik je op een knop die het bewerken afrond en het venster sluit.

Nou wil ik graag in het originele venster waar de producten staan, een vinkje tonen wanneer het bewerken voor dat product klaar is en het editor scherm gesloten is. Hoe kan ik dat doen?

Ik moet dus aan de hand van een actie (knop klik) in het editor scherm, zien in het 1e scherm (producten pagina) dat de bewerking is afgerond. Hoe kan dat?
Hebben we het echt over nieuwe browserschermen, of iets van een lightbox overlay waar je editor in staat?
Nee echt een los nieuw venster. Elk product heeft een form die de gegevens voor de editor post met target="blank".
Thanks. Ik weet dat het kan want ik heb het gezien bij een aantal sites. De vraag is alleen hoe, misschien een update in de database wanneer je klaar bent met de edit en op de 1e pagina een ajax call elke +- 3 seconden, die kijkt wat de status is van de editor?

Hoop dat er een betere oplossing is dan dat.
Ik ben bang dat er niks anders opzit dan dat. Of je moet een overlay (lightbox achting iets) maken voor je editor, waarmee je een callback kan doen als je het sluit.
In plaats van pollen via AJAX kun je het model ook omdraaien.
Het is niet persé eenvoudig (ook qua gebruikte technieken/servers) maar wel een erg elegante oplossing.
In venster A zet je een Websocket verbinding naar de server op en bij het opslaan in venster B push je via dat websocket de nieuwe status.
Dat is een stuk betrouwbaarder dan "venster gesloten" detecteren, dat kan namelijk ook gewoon via het kruisje gebeuren.

Websocket vereist wel dat je een proces permanent op de server-kant hebt draaien, voor PHP hebje de library Ratchet die hier in kan voorzien.
Een pub/sub model om data tussen het stateless stuk en de Websocket server te versturen maakt het vervolgens helemaal asynchroon.
Het is inderdaad een learning-curve en vereist wat omdenken.

Zo'n proces zou inderdaad permanent moeten draaien, je zou dat op Linux met supervisord of een systemd-unit kunnen bewerkstelligen.

Om te synchroniseren tussen het websocket deel en het stateless deel kun je een messagequeue gebruiken, daar zijn verschillende oplossingen voor. Resque is een Redis-gebaseerde oplossing en daardoor erg light-weight.
Je moet zelf weten wat de kosten-baten zijn. Maar als je niet bekend bent met Websockets lijkt het mij sneller om het anders te doen :-P

Popups genereren is niet echt meer van deze tijd. Een lightbox is praktischer en kent vaak wel een onClose-achtig evenement zodat je direct in de DOM de actiestatus van het desbetreffende bericht kan aanpassen.

Reageren