Ho questo script, preso da un vecchio articolo di Alessandro Fulciniti, per l'apertura dell'ingrandimento di un'immagine in popup.
L'unica modifica che ho fatto sta nel valore del GetElemetById e funziona correttamente nelle pagine che usano quell'ID.
Avrei bisogno però altre modifiche che non riesco a fare: Lo stesso script vorrei utilizzarlo anche per immagini che stanno in un elemento diverso: l'immagine da ingrandire si trova in un DT, all'interno di una DL con una classe ad essa associata. non so perché nn riesco.
Inoltre mi piacerebbe poter trasferire automaticamente gli attributi "title" e (secondariamente) "alt" dalla miniatura all'immagine ingrandita. Meglio ancora mi piacerebbe creare in automatico una struttura HTML nella popup, ad esempio una lista DL, in cui oltre all'immagine venga inserita anche la didascalia presa dall'attributo "title" oppure dalla disascalia già presente nell'html della pagina (nelle DL ho messo l'immagine nel tag DT e la didascalia nel tag DD).
per chiarire ecco le pag di esempio:
(struttura DL con didascalia) http://vespolate.altervista.org/paese/territorio.php
(struttura a DIV con TITLE) http://vespolate.altervista.org/paese/arte/castello.php
é un anno almeno che sono dietro a questa cosa senza successo. Che sia la volta buona?
codice:
var titolo;
window.onload=function(){
if(!document.getElementById || !document.getElementsByTagName) return;
links=document.getElementById("foto").getElementsByTagName("a");
for(i=0;i<links.length;i++)
links[i].onclick=function(){PrevFoto(this);return(false)}
}
function PrevFoto(obj){
img=obj.getAttribute("href");
titolo=obj.getElementsByTagName("img")[0].title;
foto1= new Image();
foto1.src=img;
Controlla(img);
}
function Controlla(img){
if((foto1.width!=0)&&(foto1.height!=0)){
viewFoto(img);
}
else{
funzione="Controlla('"+img+"')";
intervallo=setTimeout(funzione,100);
}
}
function viewFoto(img){
largh=foto1.width+20;
altez=foto1.height+25;
stringa="width="+largh+",height="+altez;
finestra=window.open(img,"",stringa);
finestra.document.title=titolo;
}