Ciao 
Forse il problema è stato già affrontato ma non sono riuscito ancora a risolverlo quindi mi spiego per cercare altre risposte al mio problema.
Nel titolo ho cercato di sintetizzare il problema ma il vero dilemma è la chiusura, in realtà riesco benissimo a crearlo.
In pratica tramite una funzioncina in javascript creo la "finestra":
codice:
function popup(fotoID) {
var win = document.createElement('div'),
f = document.getElementById(fotoID),
b = document.getElementById('top'),
html = '<h3>' + f.alt + '</h3><p><img src="' + f.src + '" alt="' + f.alt + '" /></p><p><a href="#" onclick="chiudi('fotografia')">Chiudi finestra!</a></p>';
win.setAttribute('id', 'fotografia');
win.setAttribute('class', 'photo'); /* Ok! semplicemente le da una dimensione e la mette a centro della pagina */
win.innerHTML = html;
b.appendChild(win);
};
codice HTML:
.....
<li><a href="#img1" onclick="popup('img1')"><img src="immagini/immagine.jpg" alt="immagine" id="img1" /></a></li>
.....
La funzione viene richiamata facendo click su una thumbnail in una pagina con tante foto, quando fai click apre la "popup" con la foto ingrandita, sopra il nome della foto e sotto la foto, in fondo un link per la sua chiusura, il tutto viene appeso all'elemento body nella pagina.
E fino a qui tutto funge a meraviglia!
Il problema avviene alla chiusura.
Nel listato di cui sopra, si vede il richiamo ad un evento onclick che a sua volta richiama una funzione chiamata chiudi(id), la funzione funziona
iterando tutti gli elementi creati all'interno del box aperto nella pagina ma lasciando quest'ultimo ancora aperto.
Ho provato a mettere in ... onclick="chiudi('fotografia'); b.removeChild(win);">... ma mi dice che win è nullo!
E non risco a trovare la soluzione per rimuovere quel maledetto div creato.