Notizie: se possiedi un dispositivo Android, prova Firefox per Android, un browser scattante e dinamico per navigare in ambiente mobile.

Autore Topic: Javascript calcolo dimensione immagine  (Letto 6782 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline tvnturbo

  • Post: 11
Javascript calcolo dimensione immagine
« il: 04 Novembre 2005 16:19:14 »
Salve ragazzi non capisco come mai la funzione javascript per calcolare di dimensioni di un'immagine non funziona in Firefox più precisamente restituisce sempre 0,0 come dimensioni mentre in Explorer funziona.
Quasi sicuramente sbalglio io qualcosa ma cosa?? :?:  :?:

Ecco la funzione jascript che uso:

Codice: [Seleziona]
<script language="JavaScript" type="text/javascript" >
var hei = 0;
var wid = 0;
var img = new Image();

function ver(up)
   {
   img.src = document.modulo.elements[up].value;
   setTimeout('misura()',100)
   }

function misura()
   {
   if(img.complete)
      {
      hei=img.height;
      wid=img.width;
      alert("Altezza="+ hei +" larghezza="+ wid);
      }
   else
      {
      setTimeout('misura()',100)
      }
   }

</script>


Questo è il form:

Codice: [Seleziona]
<form  method="POST" name="modulo" ACTION="servlet_upload_immagini" onSubmit="return controllo(this);" ENCTYPE="multipart/form-data">
              Nome:
         <td valign="middle" ><input type="text" name="nome" size="20" class="textfield"></td>
         </tr><tr>
<td valign="middle">
              Insert file:
         </td>
         <td valign="middle" ><INPUT TYPE="FILE" NAME="File_1" SIZE=40 class="textfield" onChange="ver('File_1')"></td>
         </tr>
         <tr>
          <td valign="middle" align="center">
            <input type="submit" name="Insert" value="Insert"></td>
  </form>


Grazie dell'aiuto
ciao

Offline flod

  • Amministratore
  • Post: 15057
    • http://www.flod.org
Javascript calcolo dimensione immagine
« Risposta #1 il: 04 Novembre 2005 17:09:17 »
Prima cosa: quando inserite del codice usate l'apposito tag
Seconda cosa: la console JavaScript non ti restituisce nessun errore?
Sicuro che questo codice sia JavaScript standard? Credo che il problema sia qui
Codice: [Seleziona]
img.src = document.modulo.elements[up].value;

Offline tvnturbo

  • Post: 11
Javascript calcolo dimensione immagine
« Risposta #2 il: 04 Novembre 2005 18:18:21 »
Ok ho modificato questo dovrebbe essere il codice standard javascript.
Ma con ff continua a darmi 0,0 come valori di altezza e larghezza.
No la console non restituisce nessun errore.

Codice: [Seleziona]


<script language="JavaScript" type="text/javascript" >
var hei = 0;
var wid = 0;
var img = new Image();

function misura(){

img.src = document.modulo.File_1.value;
 
     hei=img.height;
     wid=img.width;
 
     alert("Altezza="+ hei +" larghezza="+ wid);
     
   }
  </script>


questo è il form:
Codice: [Seleziona]
<form  method="POST" name="modulo" ACTION="servlet_upload_immagini" onSubmit="return controllo(this);" ENCTYPE="multipart/form-data">
              Nome:
         <td valign="middle" ><input type="text" name="nome" size="20" class="textfield"></td>
         </tr><tr>
<td valign="middle">
              Insert file:
         </td>
         <td valign="middle" ><INPUT TYPE="FILE" NAME="File_1" SIZE=40 class="textfield"  onChange="misura()"></td>
         </tr>
         <tr>
          <td valign="middle" align="center">
            <input type="submit" name="Insert" value="Insert"></td>
  </form>


Qui trovi l' esempio:  http://dbgroup.como.polimi.it/lness/prova.html
Grazie

Edit flod: tolto il pezzo 8080 dall'indirizzo altrimenti non funziona :wink:

 Edit tvnturbo:La prima volta che si accede al link la pagina potrebbe apparire bianca senza alcun contenuto questo è dovuto al pessimo server dove è hostata il file, per risolvere basta fare il refresh della pagina.
X flod: mettere o meno la porta 8080 doverbbe essere indifferente se non sbaglio. Avrai incontrato il problema descritto sopra.
:D

Offline the fly on the net

  • Post: 297
    • the fly on the net
Javascript calcolo dimensione immagine
« Risposta #3 il: 04 Novembre 2005 22:15:13 »
Codice: [Seleziona]

img.src = document.modulo.File_1.value;
   
     hei=img.height;
     wid=img.width;


Mi stupisco di come questo codice possa funzionare con Explorer :-?
Finché l'immagine non viene completamente caricata, non è possibile determinarne le dimensioni. width/height vengono lette subito dopo che img.src viene impostata.

Prova a leggere img.width dopo un ragionevole timeout oppure dopo l'evento onload

Edit: File_1 contiene il percorso del file sul computer client? Credo che qui entrino in gioco anche delle restizioni di sicurezza aggiuntive da valutare

Offline tvnturbo

  • Post: 11
Javascript calcolo dimensione immagine
« Risposta #4 il: 05 Novembre 2005 09:07:32 »
Citazione da: flyonthenet

Edit: File_1 contiene il percorso del file sul computer client? Credo che qui entrino in gioco anche delle restizioni di sicurezza aggiuntive da valutare


Esatto File_1 contiene il percorso del file sul computer client, mi sa che hai ragione il problema potrebbe essere causato da restrizioni sulla sicurezza.
Avevo già provato inserendo dei Timeout ma la cosa nn cambiava.
Qualche suggerimento?

ciao.

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Javascript calcolo dimensione immagine
« Risposta #5 il: 05 Novembre 2005 14:06:01 »
Aggiungo un'altra cosa strana: ho provato la pagina scaricandola in locale e, facendo alcune prove, il risultato è stato che alle volte mi dà la dimensione giusta, altre volte invece mi dà 0,0.
Lo stesso usando un timeout, il comportamento sembra casuale o, per meglio dire, non sono riuscito a capire perchè alle volte va e altre no...

Comunque se entrassero in ballo restrizioni di sicurezza, dovreste trovare gli avvisi in Strumenti --> Console Javascript

Offline the fly on the net

  • Post: 297
    • the fly on the net
Javascript calcolo dimensione immagine
« Risposta #6 il: 06 Novembre 2005 00:30:45 »
Per verificare se si tratta di una restrizione, basta caricare una immagine residente nello stesso dominio al posto del percorso del client.

Mi pare comunque di ricordare che in nessun caso, anche con le impostazioni più permissive su about:config, Firefox permetta di caricare un file del client su una pagina web tramite script.

Offline tvnturbo

  • Post: 11
Javascript calcolo dimensione immagine
« Risposta #7 il: 08 Novembre 2005 17:50:50 »
Grazie ragazzi dell'aiuto

Ora sto cercando di trovare una soluzione altenativa.

ciao

0 Utenti e 1 Visitatore stanno visualizzando questo topic.