.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Forum De Bell Tolls (http://www.dsy.it/forum/forumdisplay.php?forumid=7)
-- [JAVASCRIPT] Pause in un ciclo while (http://www.dsy.it/forum/showthread.php?threadid=10289)


Posted by JaM on 21-04-2004 14:22:

Arrow [JAVASCRIPT] Pause in un ciclo while

Ho uno javascript che deve generarmi una finestra delle dimensioni di una foto.
A volte capita che il precaricamento della foto non sia immediato e cosi' ottengo una finestra di dimensioni sbagliate (le dimensioni della foto precedente)

Ho fatto allora queste due funzioni, che vengono richiamate in sequenza con un onClick:

code:
var counter, photourl, mod, flag; var photo = new Image(); function defineVars(a,b) { counter=10; flag=true; photourl=a; mod=b; photo.src=(photourl); } function createNewWindow() { while(flag) { if (photo.complete) { newWindow = window.open("","","width="+photo.width+",height="+photo.height); if (newWindow != null) { newWindow.document.write("<HTML>...</HTML>"); flag=false; } } else { if (counter>0) { counter--; /*QUA DOVREBBE ESSERCI UNA PAUSA*/ } else { alert("Image load error"); flag=false; } } } }

Come faccio a farlo attendere un tot ad ogni ciclo prima di ricontrollare se l'immagine e' caricata?
Cercando in giro ho trovato solo le funzioni setTimeout(func, seconds) e setInterval(func, seconds), ma entrambe vogliono come parametro un'altra funzione da richiamare dopo un certo numero di secondi e io non voglio usare questo metodo. Infatti se la funzione ne richiama un'altra o richiama se stessa la popup viene bloccata da sistemi come la google toolbar perche' riconosciuta come "popup non richiesta".


Posted by fulminato1 on 21-04-2004 16:59:

io ho usato questo script nel mio sito per aprire le foto in pop up. dentro al filmato flash c'è un movieclip che premuto richiama questa funzione di javascript, apre un pop up delle stesse misure della foto, e clikkando sulle foto successive kiude automatikamente la precedente.dovrebbe funzionare anke kon i blokka popup, a me la prima foto la apre, se però cerco di aprirle in sequenza ne apre una si e una no.non so se sono stato kiaro, provale e vedi!

code:
function ViewImage(ifile,ix,iy,ititle) { var win; var sWidth; var sHeight; ix+=10; iy+=10; var NS = (document.layers) ? 1 : 0; win = window.open(ifile,"imageviewer","width="+ix+",height="+iy+",menubar=no,toolbar=no"); if (NS) { sWidth = win.innerWidth; sHeight = win.innerHeight; } else { sWidth = win.document.body.clientWidth; sHeight = win.document.body.clientHeight; } if(sWidth!=ix || sHeight!=iy) { win.close(); setTimeout("ViewImage('"+ifile+"',"+ix+","+iy+",'"+ititle+"')", 250); return; } win.document.open(); win.document.write("<html><head><title>"+ititle+"</title>"); win.document.write("</head><body>"); win.document.write('<div style=" position:absolute;width:'+ix+'px;height:'+iy+'px;l eft:0px;top:0px">'); win.document.write("<img src="+ifile+"></div></body></html>"); win.document.close(); }

__________________
www.alterazione.com www.andreaforzani.com
www.myspace.com/alterazione
www.myspace.com/festaincravilla


Posted by JaM on 21-04-2004 18:10:

uhm... piu' tardi provo..

pero' usi il setTimeout, a me era proprio quello che dava problemi con il blocco popup della google toolbar...

e poi non vedo una creazione di un oggetto Image... quindi tu gli passi gia' l'oggetto precaricato da flash e quindi non hai problemi di ritardo nel preload....


Posted by JaM on 21-04-2004 20:02:

dal forum di html.it mi dicono che non si puo' fare una pausa e basta (la soluzione sarebbe far andare il counter tipo a 1000 invece che a 10, ma e' urenda e blocca il browser per tutto il tempo).... e una funzione ricorsiva non va bene per il blocco delle popup...
mi sa che dovro' passare le dimensioni come parametri ogni volta....


All times are GMT. The time now is 14:33.
Show all 4 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.