Så har jeg fundet et nedtællingsscript, som fungerer fint på en testside. Det tæller ned fra et givent tidspunkt, og det fungerer som det skal. På testsiden fungerer det perfekt.body onload er angivet i scriptet:
Jeg har prøvet at lave alle mulige krumspring for at onload kommer til at stå ét sted, enten i HTML-tagget eller i javascriptet. Men lige meget hjælper det.
Hvis jeg lægger countdown1 ind i <body onload> får jeg at vide, at countdown1 ikke er et object.
Ved du hvordan det skal sættes op, hvis jeg har ret i min teori om, at nedtællingen ikke vises p.gr.a. body onload?
Det virker fint på testsiden, men ikke på minside.asp
Jeg har nu lagt ur-scriptet over på testsiden. Så nu virker nedtællingen ikke. Det gjorde den fint før. Så jeg er ret sikker på, at det har noget med "window.onload" og <body onload="xxx"> at gøre. Men hvordan skal det så sættes op, så begge funktioner kommer til at virke?
Denne nedtælling virker fint. Bare ikke, hvis jeg sætter <body onload="clock();"> ind. Sikkert fordi der både vil være
// Run when page loads window.onload = function() { countDown('coundown1', startUTCTimeValue, endUTCTimeValue);
og
<body onload="clock();">
på samme side.
<!DOCTYPE html>
<html>
<head> <meta http-equiv="refresh" content="900"> <meta charset="utf-8"> <meta name="robots" content="all"> <link rel="stylesheet" type="text/css" href="/includes/style_steen.css"> <script> var countDown = (function() { var startStream; var endStream; var streamingText = 'streaming right now'; var updateElement;
// Pad single digit numbers function pad(n) { return (n<10?'0':'') + +n; }
// Format a time difference as hh:mm:ss // d0 and d1 are date objects, d0 < d1 function timeDiff(d0, d1) { var diff = d1 - d0; return pad(diff/3.6e6|0) + ':' + pad((diff%3.6e6)/6e4|0) + ':' + pad(diff%6e4/1000|0); }
// start, end are UNIX UTC time values in seconds for the start and end of streaming return function(elementId, start, end) { var now = new Date(); var returnValue;
// By default, run again just after next full second var delay = 1020 - now.getMilliseconds();
// turn start and end times into local Date objects if (start) startStream = new Date(start*1000); if (end) endStream = new Date(end*1000);
// If now is after endStream, add 1 day, // Use UTC to avoid daylight saving adjustments if (now > endStream) { endStream.setUTCHours(endStream.getUTCHours() + 24); startStream.setUTCHours(startStream.getUTCHours() + 24); }
// Store the element to write the text to if (elementId) updateElement = document.getElementById(elementId);
// If it's streaming time, return streaming text if (now >= startStream && now < endStream) { returnValue = streamingText;
// Run again after streaming end time delay = endStream - now;
} else { // Otherwise, count down to startStream returnValue = timeDiff(now, startStream); }
// Write the time left or streaming text updateElement.innerHTML = returnValue;
// Call again when appropriate setTimeout(countDown, delay); }; }());
// Testing code
// Create dates for a local time of 21:00 today var myStart = new Date(); myStart.setHours(12,00,0,0); var myEnd = new Date() myEnd.setHours(12,00,0,0);
// Create UNIX time values for same time as UTC var startUTCTimeValue = myStart/1000|0 var endUTCTimeValue = myEnd/1000|0
// Run when page loads window.onload = function() { countDown('lb1145', startUTCTimeValue, endUTCTimeValue); }
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.