Ho un sito con gallerie. Per ingrandire ciascuna immagine di una galleria sono ricorso al classico popup tramite <a href... onclick="window.open" ecc.>, che non fa che aprire un file html con un'immagine più grande, con una didascalia e poco testo insomma.
Ciascun html da aprire nel popup ha dimensioni diverse. Anziché creare tante funzioni javascript ne ho fatta una sola che mi permette di inserire i parametri width e height della nuova finestra ogni volta che chiamo quella funzione.
In ogni caso le pagine da aprire come popup sono molte e andranno aggiornate o cambiate nel tempo, sicché andare di volta in volta a controllare le dimensioni della pagina da aprire e trascriverle nella pagina che le chiama è un po' una seccatura
Mi chiedevo se non ci fosse la possibilità di usare un javascript per aprire un popup al centro dello schermo che si ridimensionasse automaticamente in base alle dimensioni di un layer che contiene immagini e testo di quella pagina html aperta dal popup. In pratica andasse a leggersi gli stili "height" e "width" di uno specifico DIV e copiasse quegli attributi per definire la propria alterzza e larghezza.
In questo modo nelle pagine da cui devo aprire i popup non dovrei definire nulla ogni volta, ma solo la pagina da aprire come popup.
Ho fatto alcune ricerche, ma ho trovato solo soluzioni datate, alcune un po' contorte e che non funzionano sui moderni browser (FF perlomeno).
Questa soluzione che espongo di seguito funziona con IE6, non funziona con FF2 né Opera9, ignoro se funzioni con IE7.
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Popup resized to fit content</title>
<script type="text/javascript">
function resizeWin() {
if (document.all) {
winHeight=document.all['window'].offsetHeight;
winWidth=document.all['window'].offsetWidth;
}
window.resizeTo(winWidth+30,winHeight+60);
if (window.moveTo) window.moveTo((screen.availWidth-winWidth)/2,(screen.availHeight-winHeight)/2);
}
</script>
</head>
<body onload="resizeWin()">
<table style="border:0; text-align:center; vertical-align:middle">
<tr>
<td>
<div id="window" style="width:300px; height:300px">
Content goes here</p>
</div>
</td>
</tr>
</table>
</body>
</html>
occorre chiamare la pagina di cui sopra in'unaltra pagina in cui sia contenuto il seguente link:
Non c'è nessuna soluzione semplice per creare un popup cross browser che faccia al caso mio?
grazie