/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
updater nedtælling hvert sekundt
Fra : Jan M


Dato : 27-10-03 09:22

Hej.

Jeg har tilpasset et script således det nu viser hvor lang tid derer til en
begivenhed. Alt virker fint men nedtællingensberegningen sker kun hver gang
siden loades. Hvis en bruger sider og ser på siden i to minutter er tælleren
ikke skiftet. Kan man ikke få scriptet til at opdaterer sig selv hvert minut
eller sekundt?

<SCRIPT LANGUAGE="JAVASCRIPT">
today = new Date();
BigDay = new Date("August 30, 2004")
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
document.write("Det er der " + daysLeft + " dage " + hrsLeft +" timer og " +
minsLeft + " minutter til!</B><P></h4>");
</SCRIPT>



 
 
Lasse Reichstein Nie~ (27-10-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 27-10-03 10:27

"Jan M" <never@old.boy> writes:

> Jeg har tilpasset et script således det nu viser hvor lang tid derer til en
> begivenhed. Alt virker fint men nedtællingensberegningen sker kun hver gang
> siden loades. Hvis en bruger sider og ser på siden i to minutter er tælleren
> ikke skiftet. Kan man ikke få scriptet til at opdaterer sig selv hvert minut
> eller sekundt?

Så kan du ikke bruge document.write til at skrive resultatet. Bruger
man document.write efter at siden er loadet, så vil hele siden blive
slettet og det man skriver vil blive skrevet til den nye, tomme side.

Hvis man skal bruge en anden metode til at skrive til siden, så skal
man beslutte sig for hvilke browsere det skal virke I. Det pæneste
er at bruge DOM-metoder til at skifte indholdet af et element. Det
virker dog kun i nyere browsere (IE 5+, Mozilla/Netscape 6+, Opera 7).
Man kan også skrive teksten til et input-felt. Det virker I alle browsere
der forstår Javascript.

Lad os bruge DOM-metoden.

> <SCRIPT LANGUAGE="JAVASCRIPT">

I HTML 4 og frem er "type"-attributten påkrævet. Det skrives altså:
<script type="text/javascript">

> today = new Date();

Jeg anbefaler at skrive "var" foran variabel-erklæringer.

var today = new Date();

> BigDay = new Date("August 30, 2004")

Er du *sikker* på at det virker i en, fx, tysksproget browser?
Lidt mere sikker er:

var BigDay = new Date(2004,7,30);

(måneder tælles fra 0, så august er 7)

Resten af udregningen kan forsimples lidt ved at bruge modulus.

Her er et forslag til koden:

<p><span id="nedtaelling"></span></p>
<script type="text/javascript">
var taeller = document.createTextNode("--");
var bigDay = new Date(2004,7,30);
function tael() {
var today = new Date();
if (today >= bigDay) {
taeller.nodeValue = "Det er sket!";
}
var msLeft = bigDay - today;
var daysLeft = Math.floor(msLeft / 864E5); // 864E5 = ms/day
var hoursLeft = Math.floor((msLeft % 864E5) / 36E5);
var minsLeft = Math.floor((msLeft % 36E5) / 6E4);
var secsLeft = Math.floor((msLeft % 6E4) / 1000);
taeller.nodeValue = "Der er " +
daysLeft + " dage, " +
hoursLeft + " timer, "+
minsLeft + " minutter og " +
secsLeft + " sekunder tilbage.";
}
tael();
document.getElementById("nedtaelling").appendChild(taeller);
var taellerId = setInterval(tael,1000);
</script>

> msPerDay = 24 * 60 * 60 * 1000 ;

Det er altid et advarselstegn at bruge den formel hvis man regner med
datoer. Lige præcist det her eksempel kender jeg dog ikke en bedre
måde, da man ikke regner med datoer, men med forskellen på dem.


/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Jan M (27-10-2003)
Kommentar
Fra : Jan M


Dato : 27-10-03 12:51


"Lasse Reichstein Nielsen" <lrn@hotpop.com> skrev i en meddelelse
news:8yn758vm.fsf@hotpop.com...
> "Jan M" <never@old.boy> writes:
>

zip zap

> /L
> --
> Lasse Reichstein Nielsen - lrn@hotpop.com
> DHTML Death Colors:
<URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
> 'Faith without judgement merely degrades the spirit divine.'


Tak for svaret. man læse jo lidt hver gang man søger. Svaret og koden er
lagt i hjælpeteksts mappen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste