Newsgroup: it.comp.lang.javascript
Titolo: Quante domande!

Salve,
voglio approfittare ancora una volta della incredibile competenza e
disponibilita' che trovo in questo NG per chiedere suggerimenti su alcune
questioni. Scusatemi se gli argomenti non sono tra loro collegati, ma si
tratta della somma di tanti problemi che mi si sono presentati ultimamente,
ai quali non sono riuscito a dare soluzione nemmeno setacciando
selvaggiamente dejanews (ora google).
1. Esiste un modo per caricare in una pagina  _prima_ testo e immagini HTML
e solo _dopo_ le animazioni Flash? Qualcuno mi ha gia' replicato
precedentemente, ma sinceramente non ho capito come procedere :-( Mi
stupisco di come ci sia poca letteratura in giro sull'argomento, data
l'estrema importanza dello stesso (trovare una soluzione significherebbe
risparmiare agli utenti le interminabili attese di caricamento, a pagina
vuota, delle movie Flash );
2. Come aprire una finestra popup delle dimensioni esatte della foto che vi
si vuole visualizzare?
3. E' possibile disabilitare il tasto submit fino a quando tutti i campi
obbligatori di una form non sono stati riempiti? E' possibile disabilitarlo,
oltre che nella funzionalita', anche nella grafica, cioe' farlo diventare di
quel grigio chiaro e piatto tipico delle funzioni disabilitate, salvo poi
ripristinarlo appena la form e' stata compilata?
Grazie in anticipo.
Fabrizio.

 ripristinarlo appena la form e' stata compilata?
In questa maniera bisognerebbe controllare tutto il form ad ogni evento
dell'utente su di esso; sarebbe meglio controllarlo una volta sola quando
viene tentata la spedizione.
Ciao

> ...ti avevo anche detto: se hai difficoltà col codice, fammi sapere...
Vero. Mi era passato di mente e cmq ho colto l'occasione per fare anche
altre domande.
Stragrazie di tutto, ti faro' sapere come e' andata.
Fabrizio.

 );
Sto facendo delle prove, ma qualcosa mi sfugge. La finestra popup che mi si
deve aprire deve caricare direttamente una .jpg, senza passare per alcun
.htm. Inoltre deve essere in grado di valutare da sola la width e la height
della .jpg e dimensionarsi di conseguenza in maniera da ospitarla
perfettamente, ne' un pixel piu' larga, ne' un pixel piu' stretta.
In effetti ero stato un po' sintetico nella spiegazione di cio' che mi
serviva.
Grazie ancora.
Fabrizio.

 perfettamente, ne' un pixel piu' larga, ne' un pixel piu' stretta.
SOLUZIONE A
In teoria si potrebbe passare a window.open il percorso di un'immagine
piuttosto che di una pagina, ma il browser lascia dei margini bianchi e,
senza html su questi margini non puoi intervenire.
Se vuoi la coincidenza perfetta, ci deve essere una pagina che ospita
l'immagine, altrimenti non ti rimane che lasciare bordi bianchi uguali su
ogni lato (oddio, bianchi... IE3 aveva il grigio come colore predefinito...
chissà altri browser che non conosco...).
Per valutare larghezza e altezza dell'immagine in anticipo fai un'istanza
dell'immagine sulla "finestra madre", ne leggi altezza e larghezza e apri
con quelle dimensioni la "finestra figlia":
function openWin(){var x=img.width; var
y=img.height;window.open([parametri])}
var img= new Image();
img.onload=openWin;
img.src=percorso;
SOLUZIONE B
Se non è proprio necessario, evita di aprire una nuova finestra e simula il
popup rendendo visibile un layer. Happy crossbrowsing.
Ciao

senza html su questi margini non puoi intervenire.
Be', ma non è un problema,
basta aggiungere 20 in larghezza e 30 in altezza
e l'immagine viene perfettamente centrata
(il bianco intorno non sta neanche male imho...)
L'unico inconveniente è che Opera (come dovrebbero fare tutti i browser)
non lascia margini, quindi il bianco si vede tutto a destra e in basso,
ma chissenefrega.
Piuttosto,
io ho provato la tua funzione
ma... non mi funziona.
La funzione che uso adesso è
<script language="JavaScript" type="text/javascript">
<!--
   function openPIC(link, params) {
       window.open(link,'',params);
   }
// -->
</script>
e le immagini le richiamo mediante:
<a href="javascript:openPIC('foglia.jpg','width=340,height=230,toolbar=no,scrollbars=no');">
cliccate qua</a><br><br>
(nell'esempio l'immagine foglia.jpg è 320x200)
C'è un sistema per evitare di scrivere a mano le dimensioni
e fare in modo che se le trovi lui automaticamente
(sommate di 20 in larghezza e 30 in altezza)?
Grazie!
MaRoK

 (sommate di 20 in larghezza e 30 in altezza)?
E' quello che ho aggiunto prima della chiamata a window.open():
var img= new Image(); [istanza di un oggetto immagine]
img.onload=openWin; [quando l'immagine viene caricata esegue la funzione
openWin]
img.src=percorso; [definisco il percorso dell'immagine]
Funzione openWin:
function openWin(){
    // leggo la larghezza dell'immagine appena caricata
    var x=img.width;
    // leggo l'altezza
    var y=img.height;
    // apro la finestra aggiungendo i 20 e 30 px che volevi
    window.open([url],[nome win],'width='+(x+20)+',height='+(y+30)+'[altri
parametri]');
}
Ciao

 (sommate di 20 in larghezza e 30 in altezza)?
E' quello che ho aggiunto prima della chiamata a window.open():
