Javascript werkt wel in Firefox, maar niet in IE

Status
Niet open voor verdere reacties.

wouteronline55

Gebruiker
Lid geworden
29 dec 2005
Berichten
61
Beste Forumleden,

Ik zit met een probleem. Ik heb een javascript voor het tonen van een "ik ben bezig" icoontje voor tijdens het uploaden van bestanden. Echter, werkt dit script niet in IE. Hij laat het gifje dan niet eens 1 keer lopen: hij geeft gewoon direct de laatste 'scene' weer van de gif en beweegt verder niet. In Firefox werkt het prima. Daar loopt het gifje zonder problemen door.

Ik heb nu het volgende:
Code:
<script language="javascript">
    function restartGif(){
                for(var i=0; i<document.images.length; i++){
                        var img = document.images[i];
                        var imgName = img.src.toUpperCase();
                        if (imgName.substring(imgName.length-3, imgName.length) == "GIF"){
                        
                        setTimeout('document.images["preload"].src ="/images/preload.gif"', 200);
                            img.src = img.src;
                        }
                }
        }
       
        function PaginaPreloaden() {
                if (document.getElementById('laden')){
    				document.getElementById('laden').style.visibility='visible'; 
                    
                    return restartGif();
                }
                else{
                    if (document.layers){ 
                        document.laden.visibility = 'visible';
                        
                        return restartGif();
                    }
                    else { 
                        document.all.laden.style.visibility = 'visible';
                        
                        return restartGif();
                    }
                }
            
        }
</script>

Kan iemand mij misschien verder helpen?
 
Laatst bewerkt:
In IE animeert een gif plaatje niet nadat je via Javascript het src attribuut hebt verandert. Je kunt wél een nieuw plaatje maken in de plaats van het oude plaatje :thumb:
 
In IE animeert een gif plaatje niet nadat je via Javascript het src attribuut hebt verandert. Je kunt wél een nieuw plaatje maken in de plaats van het oude plaatje :thumb:

Bedankt voor je snelle respons. Bovenstaande code is al een standaard code en dat is omdat ik vrijwel geen kennis van javascript heb. Ik weet dus niet zo goed hoe ik jouw opmerking kan verwerken in de code.

Zou je me hiermee misschien kunnen helpen?
 
zet iets als dit in je HTML code:
HTML:
<div id="div_container">
  <img src="preloading.gif" alt="" />
</div>

Om nou een ander plaatje te laten zien kun je deze code uitvoeren:
Code:
  document.getElementById("div_container").innerHTML = '<img src="plaatje.gif" alt="" />';


Maar afhankelijk van wat je precies wilt is dit misschien overkill. Als je alleen maar een plaatje wilt verbergen / tonen dan kun je het plaatje gewoon vergbergen en weer laten zien. Bijvoorbeeld zo:

HTML:
<script type="text/javascript">
//<![CDATA[
function set_loading(loading)
{
  document.getElementById("img_loading").style.display = loading ? "inline" : ''none";
}
//]]>
</script>

set_loading(true) laat het plaatje zien, set_loading(false) verbergt het weer.
 
Bedankt voor je hulp, maar het werkt nog niet helemaal. Ik heb nu het volgende:

De functie:
HTML:
<script type="text/javascript">
//<![CDATA[
function set_loading(loading)
{
  document.getElementById("img_loading").style.display = loading ? "inline" : "none";
}
//]]>
</script>

Het plaatje:
HTML:
<div id="img_loading">
  <img src="/images/preload.gif" alt="" />
</div>

En het aanroepen van de functie:
HTML:
<input type="image" name="search" value="" src="/images/btn_upload.gif" onclick="set_loading();">

Hij geeft nu (zowel in FF als in IE) continu het plaatje weer...
 
Als het plaatje ontzichtbaar moet beginnen dan kan de HTML zo:
HTML:
<img src="/images/preload.gif" alt="" id="img_loading" style="display: none"/>

Om het plaatje te weergeven moet je niet set_loading() roepen, maar set_loading(true);. En als het klaar is moet je het plaatje natuurlijk weer verbergen met set_loading(false);

Dus zo:
HTML:
<input type="image" name="search" value="" src="/images/btn_upload.gif" onclick="set_loading(true);">

En wanneer het laden klaar is moet je dus set_loading(false) roepen.
 
Laatst bewerkt:
Bedankt voor je reactie. Het werkt wederom perfect in Firefox, maar in IE gaat de animatie van de gif niet lopen. Hij wordt wel getoond, maar staat gewoon stil...
 
Dat is erg vreemdt, kun je een link geven naar de pagina? Misschien dat er iets vreemds is aan het plaatje.
 
De site staat helaas niet online: ik bouw hem op dit moment alleen op mn PC.

Wel heb ik het gifje bij kunnen voegen... Ik hoop dat je er wat aan hebt.

In ieder geval bedankt!
 

Bijlagen

  • preload.gif
    preload.gif
    1,8 KB · Weergaven: 6
Ik heb vroeger weleens problemen gehad met gif plaatjes die niet afspeelden. Het vreemde was dat dit alleen het geval was zolang ze op mijn PC stonden. Zodra ik het plaatje online zette speelde het wel af. Wat ook nog wel eens hielp was het plaatje openen met een ander GIF programma en het weer opslaan.

Het is een gok, maar probeer het plaatje eens te openen met Gimp (gratis) en vervolgens weer op te slaan. Houd er wel rekening mee het op te slaan als geanimeerde gif (bij mij vraagt Gimp of ik alle lagen wil samenvoegen of dat elke laag een frame is).

Het kan ook dat er nog steeds ergens het src attribuut wordt verandert. Als je je volledige bron kunt laten zien kunnen we dat uitsluiten.
 
Ik denk dat je met je laatste opmerking goed zit. Als ik namelijk alleen het relevante stuk script naar een testpagina kopieer (dus alleen het javascript, de button en de img), werkt bij ook in IE. Het SRC attribuut wordt dus ergens gewijzigd?

Kun jij mij misschien aangeven waar ik op moet letten bij het doorlopen van het script?
 
nouja, naar "iets.src = tekst". "iets" kan van alles zijn. Een functie call, een variable, noem maar op. je zou kunnen zoeken naar ".scr".
 
Bedankt voor je antwoord!

Nou, op de pagina staat verder geen enkel javascript meer. Wel nog wat andere <img> tags, maar dat is gewoon HTML...

Als ik op ".src" zoek dan vindt hij niets...
 
Nee, helaas niet... Zoals je misschien wel begrijpt hou ik deze liever voor mezelf...

Maar hoe kan de variabelen worden overschreven als er verder geen javascript aanwezig is?
 
Hmm nouja...

Dat zou kunnen met vbscript in Internet Explorer, maar het lijkt me sterk dat je daar gebruik van maakt. Ik raad je aan om toch het plaatje nog eens met gimp op te slaan als gif. Het is gratis en heeft in het verleden vreemde mijn problemen met niet-afspelende plaatjes verholpen.
 
Ik heb het plaatje geopend en opnieuw (als animatie) met GIMP opgeslagen. Echter, veranderd er niets. In Firefox werkt hij perfect, in IE blijft de animatie stil staan op 1 frame (echter, wel elke keer een ander moment van de animatie bij het opnieuw laden van de pagina).

Ik heb voor de volledigheid ook nog een andere gif gebruikt, maar de situatie blijft dan ongewijzigd.

Het klopt dat ik geen VBasic gebruik. Erg raar dit allemaal!

Ik heb nog even verder gezocht en wanneer ik de start van mijn formulier weghaal, dan werkt het formulier (uiteraard) niet meer maar de animatie in IE wel.

Dit is de code:

HTML:
<form action="/site/actionpagina/" method="post" enctype="multipart/form-data">
 
Dan moet er toch ergens een javascript zijn wat de src aanpast met document.forms[...].nogwat

Als je de bron laat zien is het zo opgelost, maarja, als je dat niet wilt :confused:
 
Hmm ok, je kunt me bereiken op {email verwijderd}. Maar ik verwijder mijn email adress wel zo snel mogelijk :p
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan