wingman87
30-05-2010, 22:16
Ho una pagina che fa da galleria per delle foto, è presente un link che apre la foto scelta in una nuova pagina.
Ho trovato tre modi per fare questo, con il primo non ci sono problemi ma non posso aggiungere altri elementi alla pagina (volevo aggiungere un evento onclick all'immagine), con gli altri due ho problemi o con firefox o con IE (non ho provato altri browser). Il fatto è che mi piacerebbe utilizzare uno dei due metodi che non funzionano perché sono più generali e permetterebbero di fare anche cose più carine (se funzionassero).
Ho riassunto il codice in due pagine di prova che posto qui:
File prova.html
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script>
function openInWindow(){
url="http://www.google.it/intl/en_com/images/srpr/logo1w.png";
//url="file:///C:/immagine.jpg";
/*//Questo funziona sempre ma non posso aggiungere l'evento onclick
finestra=window.open(url,"_blank","width=800,height=800,location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes,titlebar=yes,toolbar=yes",false);
*/
/*//Questo funziona in Firefox ma non in IE se l'immagine è presa dal mio hardisk (cambiare la variabile url per provare)
finestra=window.open("","_blank","width=800,height=800,location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes,titlebar=yes,toolbar=yes",false);
img=finestra.document.createElement("img");
img.src=url;
img.alt=url;
img.setAttribute("onclick","window.close()");
finestra.document.body.appendChild(img);
*/
/*//Questo funziona in IE ma non in Firefox
finestra=window.open("prova-popup.html","_blank","width=800,height=800,location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes,titlebar=yes,toolbar=yes",false);
img=finestra.document.createElement("img");
img.src=url;
img.alt=url;
img.setAttribute("onclick","window.close()");
finestra.document.body.appendChild(img);
*/
}
</script>
<title>
Prova
</title>
</head>
<body>
<a href="javascript:openInWindow();">Clicca qui!</a>
</body>
</html>
File prova-popup.html
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>
Prova Popup
</title>
</head>
<body>
</body>
</html>
Per provare i vari metodi bisogna scommentarli dal file prova.html
Ho trovato tre modi per fare questo, con il primo non ci sono problemi ma non posso aggiungere altri elementi alla pagina (volevo aggiungere un evento onclick all'immagine), con gli altri due ho problemi o con firefox o con IE (non ho provato altri browser). Il fatto è che mi piacerebbe utilizzare uno dei due metodi che non funzionano perché sono più generali e permetterebbero di fare anche cose più carine (se funzionassero).
Ho riassunto il codice in due pagine di prova che posto qui:
File prova.html
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script>
function openInWindow(){
url="http://www.google.it/intl/en_com/images/srpr/logo1w.png";
//url="file:///C:/immagine.jpg";
/*//Questo funziona sempre ma non posso aggiungere l'evento onclick
finestra=window.open(url,"_blank","width=800,height=800,location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes,titlebar=yes,toolbar=yes",false);
*/
/*//Questo funziona in Firefox ma non in IE se l'immagine è presa dal mio hardisk (cambiare la variabile url per provare)
finestra=window.open("","_blank","width=800,height=800,location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes,titlebar=yes,toolbar=yes",false);
img=finestra.document.createElement("img");
img.src=url;
img.alt=url;
img.setAttribute("onclick","window.close()");
finestra.document.body.appendChild(img);
*/
/*//Questo funziona in IE ma non in Firefox
finestra=window.open("prova-popup.html","_blank","width=800,height=800,location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes,titlebar=yes,toolbar=yes",false);
img=finestra.document.createElement("img");
img.src=url;
img.alt=url;
img.setAttribute("onclick","window.close()");
finestra.document.body.appendChild(img);
*/
}
</script>
<title>
Prova
</title>
</head>
<body>
<a href="javascript:openInWindow();">Clicca qui!</a>
</body>
</html>
File prova-popup.html
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>
Prova Popup
</title>
</head>
<body>
</body>
</html>
Per provare i vari metodi bisogna scommentarli dal file prova.html