Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Problema swap immagine da uploadare

    Ciao a tutti, ho uno script per eseguire lo swap di un'immagine, che mi serve all'interno di un form per fare l'upload dell'immagine stessa.
    In pratica presento un'immagine fissa e quando ne seleziono una dal pc del visitatore, cambio l'anteprima.
    Il problema è che con IE funziona perfettamente, mentre con Firefox no, e non riesco a capire per quale motivo.

    Questo è lo script :
    codice:
    function preview1() 
    {
      Img1= new Image(100,50)			  
      Img1.src = "logo-iniziale.gif"      
      Img2 = document.f.foto1.value   
      document.swap1.src = Img2;          
      return true;
    }
    e questo il form :

    codice:
    <input type="file" size=50 name="foto1" Onchange="preview1()">
    
    [img]logo-iniziale.gif[/img]
    Avete qualche suggerimento ?
    Grazie !

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    L'oggetto swap1 non esiste a livello di document.
    Fa parte della collezione delle images. Puoi modificare cosi`:
    document.images['swap1'].src = Img2;

    Se invece usi XHTML, la sintassi e` completamente diversa.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ciao Michele grazie per il suggerimento, ma con firefox continua a non funzionare.
    Ho modificato lo scirpt come hai detto
    codice:
    document.images['swap1'].src = Img2; 
    //  document.swap1.src = Img2;
    ma il risultato non mi cambia
    Fra l'altro (ma questa è un altra domanda)usando la proprietà che mi hai indicato, volevo testare anche le dimensioni delle immagini che andrò a caricare, usando :

    codice:
    alert("Le dimensioni attuali sono di " + document.images['swap1'].width + " pixel");
    Questo funziona, ma non sempre : a volte la dimensione mostrata nell'alert è corretta, a volte se continuo a scegliere immagini diverse, mi mostra quella della volta prima !
    Grazie !

  4. #4
    opss. ho schiacciato 2 volte invio

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Hai un link alla pagina?
    Ci sono varie cose che occorre guardare.

    1. Hai un doctype nella pagina? Quale?
    2. Lasci il tempo di ricaricare l'immagine? Puoi testare con onload sull'oggetto immagine.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Un link immediato no, perchè è all'interno di un form più complesso.
    Però posso allegare qui l'estratto in oggetto dalla mia pagina.
    Se non ti scoccia potresti fare un copia-incolla come pagina html.
    Attenzione che forse nella funzione preview2 c'è un a capo nell'alert che in realtà non esiste.

    codice:
    <html>
    <head>
    </head>
    <body >
    <script language="Javascript">
    function preview1() 
    {
      Img1= new Image(100,50)			  
      Img1.src = "logo-iniziale.gif"      
      Img2 = document.f.foto1.value   
    	document.images['swap1'].src = Img2; 
    //  document.swap1.src = Img2;          
      return true;
    }
    function preview2() 
    {
      Img5= new Image(100,50)			  
      Img5.src = "logo-iniziale.gif"     
      Img6 = document.f.foto2.value   
      document.images['swap2'].src = Img6;          
      alert("Le dimensioni attuali sono di " + document.images['swap2'].width +"x" + document.images['swap2'].height + " 
    
    pixel");
      return true;
    }
    </SCRIPT>
    <form name="f" method="post" action="xxxxxxxxxx.asp" enctype="multipart/form-data">
    <table align="center" border="0" width="100%">
    <tr>
    <td bgcolor="#FEF4CD" valign="top">Carica foto 1:</td>
    <td bgcolor="#FEF4CD" valign="top"><input class="inputBox" type="file" size=50 name="foto1"  Onchange="preview1()">
    
    [img]logo-iniziale.gif[/img]			
    </td>
    </tr>	
    <span id="prev">
    <tr>
    <td bgcolor="#FEF4CD" valign="top">Carica foto 2:</td>
    <td bgcolor="#FEF4CD" valign="top"><input class="inputBox" type="file" size=50 name="foto2" Onchange="preview2()">
    
    [img]logo-iniziale.gif[/img]			
    </td>
    </tr>	
    </span>
    <tr>
    <td colspan="2" align="center">
    <input class="inputSubmit" type="submit" name= "Go" value="Invia">
    </td>
    </tr>
    </table>		
    </form>
    </body>
    </html>
    Grazie in anticipo per tutto e scusa il disturbo.
    Ciao !

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    A questo punto e` chiaro: non dai tempo di caricare l'immagine.

    Prova cosi`:
    <input class="inputBox" type="file" size=50 name="foto1" onchange="preview(this, 'swap1');">
    ...
    <input class="inputBox" type="file" size=50 name="foto2" onchange="preview(this, 'swap2');">

    codice:
    var Imm = new Image();
    
    function preview(cc,dest) {
      //Imm.src = "logo-iniziale.gif"; // a che serve??
      var str = cc.value;
      Imm.src = str;
      Imm.onload = preview_2;  // senza parentesi!!
      document.getElementById(dest).src = str;
      return;
    }
    
    function preview_2() {
      var w = Imm.width;
      var h = Imm.height;
      alert("Le dimensioni attuali sono di " + w +" x " + h + "pixel");
      return true;
    }
    Servono due funzioni perche` in una fai partire il caricamento, nell'altra leggi le dimensioni.

    Invece puoi chiamare la stessa funzine con parametri diversi per i due input.

    Ho modificato un pelo i nomi, per evitare nomi simili per oggetti strutturalmente diversi (per chiarezza di noi umani).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Michele ho provato lo script con le tue modifiche.
    Con IE funziona perfettamente, ma con Firefox no.
    Andando nella console javascript di Firefox, vedo che quando seleziono un file, ottengo il seguente errore :

    Errore: document.getElementById(dest) has no properties


  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ha ragione. E` IE che non segnala l'errore (per lui tutto fa brodo: confonde id e name)

    Il getElementById() ha bisogno di passargli un id valido.

    Se non hai nomi doppi nella pagina, metti:
    [img]logo-iniziale.gif[/img]
    (idem per l'altra)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Macchè, mi sa che devo rinunciare.
    Adesso Firefox non da più l'errore, ma lo swap non avviene.
    Continuo a vedere l'immagini iniziale e non quella selezionata per l'upload !

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.