External javascript not working in Firefox

Associate
Joined
2 Aug 2005
Posts
680
Hi,

I've added this javascript to my webpage, however it won't display in Firefox. Is there anyway of getting it to work?

This is in the head of the html
Code:
<script src="countdown-clock.js" type="text/javascript"></script>
This is in the external javascript
Code:
function countdown_clock(year, month, day, hour, minute, format)
         {
         html_code = '<span id="countdown"> </span>';
         
         document.write(html_code);
         
         countdown(year, month, day, hour, minute, format);                
         }
         
function countdown(year, month, day, hour, minute, format)
         {
         Today = new Date();
         Todays_Year = Today.getFullYear() - 2000;
         Todays_Month = Today.getMonth() + 1;                  
         
         //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, 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));
                    Time_Left %= (60 * 60 * 24);
                    hours = Math.floor(Time_Left / (60 * 60));
                    Time_Left %= (60 * 60);
                    minutes = Math.floor(Time_Left / 60);
                    Time_Left %= 60;
                    seconds = Time_Left;
                    
                    dps = 's'; hps = 's'; mps = 's'; sps = 's';
                    //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 + ' day' + dps + ' ';
                    document.all.countdown.innerHTML += hours + ' hour' + hps + ' ';
                    document.all.countdown.innerHTML += minutes + ' minute' + mps + ' and ';
                    document.all.countdown.innerHTML += seconds + ' second' + 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);
         }
This is in the body of the html where I want the script to display
Code:
<script type="text/javascript">countdown_clock(07, 07, 1, 00, 00, 1);</script>
Any help would be appreciated :)
 
Yeah it's in the root so it should be ok. It works in my IE, but I have tried it on two machines here using Firefox and no joy. Any ideas?
 
I guess so, that's the only error in there anyway.

The script link in in the head in between a meta tag and the style sheet link:
Code:
<meta name="description" content="Website details" />

<script src="countdown-clock.js" type="text/javascript"></script>

<link href="../screen.css" media="screen" rel="stylesheet" type="text/css" />
and the script is in a div on the page in the body
Code:
<div id="infobar"><script type="text/javascript">countdown_clock(07, 07, 1, 00, 00, 1);</script>&nbsp;remaining</div>
 
Thanks for your help, I'll have a play around with it. I know the site will mainly be used by IE users (it's an internal website) so it's not a problem. I just like to get these things right :)
 
I think I have found the error:
Error: document.all has no properties
Source File: countdown-clock.js
Line: 50

and line 50 reads:
document.all.countdown.innerHTML = days + ' day' + dps + ' ';

Strange though because the code you gave me to paste works. Does this shed any light?
 
Just changed the bits in the .js file and it's working now, but all other text in the div has gone. The other text is there for the first second, but it then vanishes. The script is also inside another div but that isn't working (only the bit in the id="infobar" is). Is there anyway I can get it working in everything in firefox?

Thanks for your help mate, unfortunately I have no experience of Javascript so I find these problems hard to solve.
 
I guess it's some sort of bug in Firefox. What I have I have done now is put the script inside a <span id="countdown"></span> and changed the reference in the Javascript from "infobar" to "countdown" and this seems to work. Either it's a bug in Firefox or IE lets you get away with sloppy code :)

Thanks a lot for all your help, really appreciate it! :)
 
Back
Top Bottom