Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [JS] Differenze tra browser

    Salve a tutti. Vi chiedo se sapete dimi come mai ottengo tre comportamenti diversi da questo codice:

    <script>
    function cambiaImmagine() {
    document.getElementById("image").src='xxx.gif';
    setTimeout(function(){ document.getElementById("image").src='yyy.png'; }, 8000);
    ...
    fai quello che vuoi
    ... };

    </script>
    ...
    <img id="image" onclick="cambiaImmagine()" src="yyy.png" />


    FIREFOX: L'immagine non cambia
    CHROME: L'immagine cambia regolarmente e dopo 8 secondi ritorna quella precedente.
    EXPLORER: L'immagine sparisce (cioe' viene sostituita da un'immagine vuota) e poi torna quella di prima.

    Qualcuno mi puo' illuminare su cosa succede?
    Su chrome funziona benissimo, percio' ne deduco che non ci sono errori di codice.

  2. #2
    Il codice che hai postato non presenta errori, il malfunzionamento va cercato altrove.

    Hai altri script nella pagina? Cosa dice la console del browser quando clicchi l'immagine?

  3. #3
    Grazie Luca per la pronta risposta. Ovviamente il codice l'ho semplificato perche' si tratta di una pagina php aperta dentro FancyBox che fa un sacco di cose, quindi molti script sia php che javascript. Pero' ho trascritto solo le parti di codice interessate, che tra l'altro sono praticamente identiche e che non dovrebbero riguardare altre parti di codice.
    Semplicemente piazzo una icona e associo all' onclik una funzione. La funzione e' propio quella che ho scritto.
    Se sei cosi' gentile ne ho creato una versione integrale di prova (la pagina e' proprio la stessa anche se dal sito ci si arriva in modo piu' 'tortuoso') http://www.lodesani.org/flw/main/prova.htm
    Il problema e' che si comporta in maniera totalmente diversa nei tre browser che ho provato.
    Potrebbe essere dato dal fato che nella funzione c'e' un redirect ad una pagina php (che non cambia pagina, ma esegue solamente una routine php)?? Le altre funzioanlita' della pagina restano perfettmente funzionanti.

    Come vedo la consolle del browser? Sono capace solo di vedere quella di Chrome, ma e' l'unico browser in cui l'erore non si preenta.

    Grazie mille.
    Gianpiero.

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova ad associargli un url assoluto sito/cartella/immagine
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Ho trovato il problema: il redirect eseguito subito dopo (quindi nella parte in cui ho scritto: fai quello che vuoi) , non da il tempo all'immagine di caricarsi.
    Mi pare esista un evento da aggiungere al codice js per sapere se l'immagine e' stata caricata, giusto?
    Potete buttari li' un pezzo di codice? Cioe' al posto di fai quello che vuoi come posso dire: quando l'immagine e' stata caricata allora fai quello che vuoi?

    Grazie mille.
    Grazie mille.

  6. #6
    dovresti gestire l'evento onload applicato all'immagine:

    codice:
    $(function(){
        $('img').bind('load',function(){
            location.href='something';
        });
    });
    Credo comunque ti convenga pre-caricare l'immagine di modo da averla subito disponibile.

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.