Avatar billede mrbigbrother Nybegynder
21. maj 2008 - 20:10 Der er 6 kommentarer og
1 løsning

Countdown script virker ikke i firefox

Jeg har et problem med at mit countdown script ikke virker i firefox men gør det i Safari og IE.

Scripten ser således ud:

<script type='text/javascript'>
                            function countdown_clock(year, month, day, hour, minute, format)
                                    {
                                    countdown(08,06,02,00,00,1);               
                                    }

                            function countdown(year, month, day, hour, minute, format)
                                    {
                                    Today = new Date();
                                    Todays_Year = Today.getFullYear() - 2000;
                                    Todays_Month = Today.getMonth();                 

                                    //Convert both today's date and the target date into miliseconds.                         
                                    Todays_Date = (new Date(Todays_Year, Todays_Month, Today.getDate(),
                                                            Today.getHours(), Today.getMinutes(), Today.getSeconds())).getTime();                               
                                    Target_Date = (new Date(year, month - 1, day, hour, minute, 00)).getTime();                 

                                    //Find their difference, and convert that into seconds.                 
                                    Time_Left = Math.round((Target_Date - Todays_Date) / 1000);

                                    if(Time_Left < 0)
                                        Time_Left = 0;

                                    switch(format)
                                          {
                                          case 0:
                                                //The simplest way to display the time left.
                                                document.all.countdown.innerHTML = Time_Left + ' seconds';
                                                break;
                                          case 1:
                                                //More datailed.
                                                days = Math.floor(Time_Left / (60 * 60 * 24));
                                                days = days<10 ? '0'+days : days;

                                                Time_Left %= (60 * 60 * 24);
                                                hours = Math.floor(Time_Left / (60 * 60));
                                                hours = hours<10 ? '0'+hours : hours;

                                                Time_Left %= (60 * 60);
                                                minutes = Math.floor(Time_Left / 60);
                                                minutes = minutes<10 ? '0'+minutes : minutes;

                                                Time_Left %= 60;
                                                seconds = Time_Left;
                                                seconds = seconds<10 ? '0'+seconds : seconds;


                                                dps = ''; hps = ''; mps = ''; sps = '';
                                                //ps is short for plural suffix.
                                                if(days == 1) dps ='';
                                                if(hours == 1) hps ='';
                                                if(minutes == 1) mps ='';
                                                if(seconds == 1) sps ='';

                                                document.all.countdown.innerHTML = days + ':' + dps + '';
                                                document.all.countdown.innerHTML += hours + ':' + hps + '';
                                                document.all.countdown.innerHTML += minutes + ':' + mps + '';
                                                document.all.countdown.innerHTML += seconds + '' + sps;
                                                break;
                                          default:
                                                document.all.countdown.innerHTML = Time_Left + ' seconds';
                                          }

                                    //Recursive call, keeps the clock ticking.
                                    setTimeout('countdown(' + year + ',' + month + ',' + day + ',' + hour + ',' + minute + ',' + format + ');', 1000);
                                    }
                            </script>
Avatar billede erikjacobsen Ekspert
21. maj 2008 - 21:03 #1
Det der "document.all", er noget gammelt, inkompatibelt, IE-vrøvl.
Avatar billede mrbigbrother Nybegynder
21. maj 2008 - 21:17 #2
hehe ok.. det er document.write så?
Avatar billede w13 Novice
21. maj 2008 - 21:28 #3
Nej, det er ligesådan. ;)

Brug:

document.getElementById("countdown").firstChild.nodeValue = Time_Left + ' seconds';

Det kræver så, at der står id="countdown" på elementet og ikke name="countdown", og det skal fra start indeholde: &nbps;
Avatar billede w13 Novice
21. maj 2008 - 21:28 #4
Hov, det skal indeholde: &nbsp;
Avatar billede mrbigbrother Nybegynder
21. maj 2008 - 21:41 #5
Tak det virker.. send lige et svar så jeg kan give dig point
Avatar billede w13 Novice
22. maj 2008 - 08:11 #6
;)
Avatar billede w13 Novice
22. maj 2008 - 17:23 #7
Tak for point!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester