/ 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
Vis countdown i titlebar
Fra : Ace


Dato : 17-09-08 12:57

Hejsa

Hvordan får man en dynamisk countdown i titlebaren, som tæller
ned til et specifikt tidspunkt på en bestemt dag, der med to
cifre viser dage:timer:minutter:sekunder?
Eksempel:
"Husk der er: xx:xx:xx:xx til et-eller-andet."

Fandt dette script på dynamicdrive.com:
<head>
<script type="text/javascript">
function cdtime(container, targetdate){
if (!document.getElementById ||
!document.getElementById(container)) return
this.container=document.getElementById(container)
this.currentTime=new Date()
this.targetdate=new Date(targetdate)
this.timesup=false
this.updateTime()
}
cdtime.prototype.updateTime=function(){
var thisobj=this
this.currentTime.setSeconds(this.currentTime.getSeconds()+1)
setTimeout(function(){thisobj.updateTime()}, 1000) //update time
every second
}
cdtime.prototype.displaycountdown=function(baseunit,
functionref){
this.baseunit=baseunit
this.formatresults=functionref
this.showresults()
}
cdtime.prototype.showresults=function(){
var thisobj=this

var timediff=(this.targetdate-this.currentTime)/1000 //difference
btw target date and current date, in seconds
if (timediff<0){ //if time is up
this.timesup=true
this.container.innerHTML=this.formatresults()
return
}
var oneMinute=60 //minute unit in seconds
var oneHour=60*60 //hour unit in seconds
var oneDay=60*60*24 //day unit in seconds
var dayfield=Math.floor(timediff/oneDay)
var hourfield=Math.floor((timediff-dayfield*oneDay)/oneHour)
var
minutefield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHou
r)/oneMinute)
var
secondfield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHou
r-minutefield*oneMinute))
if (this.baseunit=="hours"){ //if base unit is hours, set
"hourfield" to be topmost level
hourfield=dayfield*24+hourfield
dayfield="n/a"
}
else if (this.baseunit=="minutes"){ //if base unit is minutes,
set "minutefield" to be topmost level
minutefield=dayfield*24*60+hourfield*60+minutefield
dayfield=hourfield="n/a"
}
else if (this.baseunit=="seconds"){ //if base unit is seconds,
set "secondfield" to be topmost level
var secondfield=timediff
dayfield=hourfield=minutefield="n/a"
}
this.container.innerHTML=this.formatresults(dayfield, hourfield,
minutefield, secondfield)
setTimeout(function(){thisobj.showresults()}, 1000) //update
results every second
}

/////CUSTOM FORMAT OUTPUT FUNCTIONS
BELOW//////////////////////////////

//Create your own custom format function to pass into
cdtime.displaycountdown()
//Use arguments[0] to access "Days" left
//Use arguments[1] to access "Hours" left
//Use arguments[2] to access "Minutes" left
//Use arguments[3] to access "Seconds" left

//The values of these arguments may change depending on the
"baseunit" parameter of cdtime.displaycountdown()
//For example, if "baseunit" is set to "hours", arguments[0]
becomes meaningless and contains "n/a"
//For example, if "baseunit" is set to "minutes", arguments[0]
and arguments[1] become meaningless etc

function formatresults(){
if (this.timesup==false){//if target date/time not yet met
var displaystring="Husk der er:
"+arguments[0]+":"+arguments[1]+":"+arguments[2]+":"+arguments[3]
+" til et-eller-andet."
}
else{ //else if target date/time met
var displaystring="Så er det NU!"
}
return displaystring
}
</script>
</head>
<body>
<div id="countdowncontainer"></div>
<script type="text/javascript">
var futuredate=new cdtime("countdowncontainer", "September 20,
2008 18:00:00")
futuredate.displaycountdown("days", formatresults)
</script>
</body>
.. det er "September 20, 2008 18:00:00" der tælles ned til.
Desværre viser scriptet her kun countdownen i et div.

Fandt siden hen det her:
<head>
<title></title>
<script type="text/javascript">
var i = 86400;
function titleTimer(){
document.title = "Husk der er: "+i+" til et-eller-andet.";
i -= 1;
if(i < 0){
document.title = "Så er det NU!"}
else{
setTimeout("titleTimer()", 1000);}}
</script>
</head>
<body onLoad="titleTimer()">
</body>
.. selvom dette script fint viser countdownen i titlebaren,
tæller det udelukkende sekunder og hver gang siden refreshes,
starter countdownen forfra.

Ved ikke om det er muligt på at integrere disse to script, for at
opnå den ønskede effekt, eller om der findes en lang simpler
løsning. Uanset hvad håber jeg, at der nogen der kan hjælpe mig.

Venligst
Ace

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Birgit Holme (17-09-2008)
Kommentar
Fra : Birgit Holme


Dato : 17-09-08 15:05

Jeg tror det script jeg har på denne side gør det du vil have
http://www.squiggyclassicinline.com/

scriptet er hentet på http://andrewu.co.uk/clj/countdown/

Og dette er det eneste du har på din side

<span class="countdown">Squiggy 2009 Is Coming!<br>
<br>
Counting down to race day: <span
id="countdown1">2009-03-15 09:00:00 GMT+05:00</span>!
</span>

I dk skal "GMT+05:00" rettes til "GMT-01:00"


plus selvfølgelig en henvisning til .js i din header <script
type="text/javascript" src="/scripts/countdown_expanded.js"
defer="defer"></script>


Meget simpel og det virker, har haft min countdown til at tælle over
et år uden nogensomhelst problemer.

/Birgit



Ace wrote in dk.edb.internet.webdesign.clientside:
> Hejsa
>
> Hvordan får man en dynamisk countdown i titlebaren, som tæller
> ned til et specifikt tidspunkt på en bestemt dag, der med to
> cifre viser dage:timer:minutter:sekunder?
> Eksempel:
> "Husk der er: xx:xx:xx:xx til et-eller-andet."
>
> Fandt dette script på dynamicdrive.com:
> <head>
> <script type="text/javascript">
> function cdtime(container, targetdate){
> if (!document.getElementById
> !document.getElementById(container)) return
> this.container=document.getElementById(container)
> this.currentTime=new Date()
> this.targetdate=new Date(targetdate)
> this.timesup=false
> this.updateTime()
> }
> cdtime.prototype.updateTime=function(){
> var thisobj=this
> this.currentTime.setSeconds(this.currentTime.getSeconds()+1)
> setTimeout(function(){thisobj.updateTime()}, 1000) //update time
> every second
> }
> cdtime.prototype.displaycountdown=function(baseunit,
> functionref){
> this.baseunit=baseunit
> this.formatresults=functionref
> this.showresults()
> }
> cdtime.prototype.showresults=function(){
> var thisobj=this
>
> var timediff=(this.targetdate-this.currentTime)/1000 //difference
> btw target date and current date, in seconds
> if (timediff<0){ //if time is up
> this.timesup=true
> this.container.innerHTML=this.formatresults()
> return
> }
> var oneMinute=60 //minute unit in seconds
> var oneHour=60*60 //hour unit in seconds
> var oneDay=60*60*24 //day unit in seconds
> var dayfield=Math.floor(timediff/oneDay)
> var hourfield=Math.floor((timediff-dayfield*oneDay)/oneHour)
> var
> minutefield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHou
> r)/oneMinute)
> var
> secondfield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHou
> r-minutefield*oneMinute))
> if (this.baseunit=="hours"){ //if base unit is hours, set
> "hourfield" to be topmost level
> hourfield=dayfield*24+hourfield
> dayfield="n/a"
> }
> else if (this.baseunit=="minutes"){ //if base unit is minutes,
> set "minutefield" to be topmost level
> minutefield=dayfield*24*60+hourfield*60+minutefield
> dayfield=hourfield="n/a"
> }
> else if (this.baseunit=="seconds"){ //if base unit is seconds,
> set "secondfield" to be topmost level
> var secondfield=timediff
> dayfield=hourfield=minutefield="n/a"
> }
> this.container.innerHTML=this.formatresults(dayfield, hourfield,
> minutefield, secondfield)
> setTimeout(function(){thisobj.showresults()}, 1000) //update
> results every second
> }
>
> /////CUSTOM FORMAT OUTPUT FUNCTIONS
> BELOW//////////////////////////////
>
> //Create your own custom format function to pass into
> cdtime.displaycountdown()
> //Use arguments[0] to access "Days" left
> //Use arguments[1] to access "Hours" left
> //Use arguments[2] to access "Minutes" left
> //Use arguments[3] to access "Seconds" left
>
> //The values of these arguments may change depending on the
> "baseunit" parameter of cdtime.displaycountdown()
> //For example, if "baseunit" is set to "hours", arguments[0]
> becomes meaningless and contains "n/a"
> //For example, if "baseunit" is set to "minutes", arguments[0]
> and arguments[1] become meaningless etc
>
> function formatresults(){
> if (this.timesup==false){//if target date/time not yet met
> var displaystring="Husk der er:
> "+arguments[0]+":"+arguments[1]+":"+arguments[2]+":"+arguments[3]
> +" til et-eller-andet."
> }
> else{ //else if target date/time met
> var displaystring="Så er det NU!"
> }
> return displaystring
> }
> </script>
> </head>
> <body>
> <div id="countdowncontainer"></div>
> <script type="text/javascript">
> var futuredate=new cdtime("countdowncontainer", "September 20,
> 2008 18:00:00")
> futuredate.displaycountdown("days", formatresults)
> </script>
> </body>
> .. det er "September 20, 2008 18:00:00" der tælles ned til.
> Desværre viser scriptet her kun countdownen i et div.
>
> Fandt siden hen det her:
> <head>
> <title></title>
> <script type="text/javascript">
> var i = 86400;
> function titleTimer(){
> document.title = "Husk der er: "+i+" til et-eller-andet.";
> i -= 1;
> if(i < 0){
> document.title = "Så er det NU!"}
> else{
> setTimeout("titleTimer()", 1000);}}
> </script>
> </head>
> <body onLoad="titleTimer()">
> </body>
> .. selvom dette script fint viser countdownen i titlebaren,
> tæller det udelukkende sekunder og hver gang siden refreshes,
> starter countdownen forfra.
>
> Ved ikke om det er muligt på at integrere disse to script, for at
> opnå den ønskede effekt, eller om der findes en lang simpler
> løsning. Uanset hvad håber jeg, at der nogen der kan hjælpe mig.
>
> Venligst
> Ace
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Ace (17-09-2008)
Kommentar
Fra : Ace


Dato : 17-09-08 17:21

Birgit Holme skrev:
> Jeg tror det script jeg har på denne side gør det du vil have
> http://www.squiggyclassicinline.com/
>
> scriptet er hentet på http://andrewu.co.uk/clj/countdown/
>
> Og dette er det eneste du har på din side
>
> <span class="countdown">Squiggy 2009 Is Coming!<br>
> <br>
> Counting down to race day: <span
> id="countdown1">2009-03-15 09:00:00 GMT+05:00</span>!
> </span>
>
> I dk skal "GMT+05:00" rettes til "GMT-01:00"
>
>
> plus selvfølgelig en henvisning til .js i din header <script
> type="text/javascript" src="/scripts/countdown_expanded.js"
> defer="defer"></script>
>
>
> Meget simpel og det virker, har haft min countdown til at tælle over
> et år uden nogensomhelst problemer.

Et fint countdown-script du har dér, men desværre viser det, ligesom
det første script i mit indlæg, kun nedtællingen i et layer.. i dit
tilfælde et <span>.
Derfor løser det beklageligvis ikke mit problem med, at få countdownen
vist i browserens titlebar

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Peter Karlsen (17-09-2008)
Kommentar
Fra : Jens Peter Karlsen


Dato : 17-09-08 17:27

Ikke muligt. Hvis du i stedet for Titlebar skulle mene statusbar så er
dette muligt i nogle ældre Browsere.
Kort sagt, vis det et sted på siden i stedet.

Regards Jens Peter Karlsen.

On 17 Sep 2008 11:57:23 GMT, Ace <ace@clubace.dk> wrote:

>Hejsa
>
>Hvordan får man en dynamisk countdown i titlebaren, som tæller
>ned til et specifikt tidspunkt på en bestemt dag, der med to

Ace (17-09-2008)
Kommentar
Fra : Ace


Dato : 17-09-08 17:43

Jens Peter Karlsen mener:
> Ikke muligt. Hvis du i stedet for Titlebar skulle mene statusbar så er
> dette muligt i nogle ældre Browsere.
> Kort sagt, vis det et sted på siden i stedet.

Ikke muligt?? Undskyld, men er det en konstatering der bunder i
omtvistelig logik, eller er det blot en formodning?
Grunden til jeg spørger er, at det virker ret bemærkelsesværdigt hvis det
slet ikke skulle kunne lade sige gøre, når det nu engang er muligt at få
så meget andet til at stå i titlebaren.

Jeg har ganske vidst ikke særlig stor indsigt i JavaScript, men er det
ikke muligt i et countdown-script, at sige noget a la
parent.document.title= et sted, og så få nedtællingen vist deri i stedet
for et layer eller noget?

Ace

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Stig Johansen (17-09-2008)
Kommentar
Fra : Stig Johansen


Dato : 17-09-08 18:22

Ace wrote:

> Jens Peter Karlsen mener:
>> Ikke muligt. Hvis du i stedet for Titlebar skulle mene statusbar så er
>> dette muligt i nogle ældre Browsere.
>> Kort sagt, vis det et sted på siden i stedet.
>
> Ikke muligt?? Undskyld, men er det en konstatering der bunder i
> omtvistelig logik, eller er det blot en formodning?
> Grunden til jeg spørger er, at det virker ret bemærkelsesværdigt hvis det
> slet ikke skulle kunne lade sige gøre, når det nu engang er muligt at få
> så meget andet til at stå i titlebaren.
>
> Jeg har ganske vidst ikke særlig stor indsigt i JavaScript, men er det
> ikke muligt i et countdown-script, at sige noget a la
> parent.document.title= et sted, og så få nedtællingen vist deri i stedet
> for et layer eller noget?

Godt spørgsmål.
Jeg kan godt ændre title (og visning i titlebar) ved at bruge eks.
document.title = 'Ny title'
I hhv Firefox 3, IE 6, samt Konqueror.
Men det kan være det ikke virker i nyere IE'ere, som jeg desværre ikke har
adgang til hér.

--
Med venlig hilsen
Stig Johansen

Jens Peter Karlsen (18-09-2008)
Kommentar
Fra : Jens Peter Karlsen


Dato : 18-09-08 20:50

Du kan godt få den til at sige noget a la: "der er 10 dage til".
Jeg ved ikke lige hvad jeg tænkte på.

Nedenstående script vil være let at ændre der er blot 2 linier der
skal ændres.

document.write("<b>"+calculatediff+" "+pluraldayornot+"
"+beforeOccasionText+" "+showdate+"!</b>")

ændres til:

top.document.title ="+calculatediff+" "+pluraldayornot+"
"+beforeOccasionText+" "+showdate+"

(skal være på en linie)
Den anden document.write ændres på samme facon.

Har ikke lige testet det men burde virke.
Jeg vil dog stadig fraråde det mange sikkert vil overse det. Det er
f.eks. sjældent at jeg kikker på titlen.

Regards Jens Peter Karlsen.


<script type="text/javascript">

/*
Annual Occasions Count Down script- By JavaScript Kit
For this and over 400+ free scripts, visit
http://www.javascriptkit.com
This notice must stay intact
*/

var today=new Date()

//Enter the occasion's MONTH (1-12) and DAY (1-31):
var theoccasion=new Date(today.getFullYear(), 12, 25)

//Customize text to show before and on occasion. Follow grammer below:
var beforeOccasionText="left until Christmas"
var onOccasiontext="Today is Christmas. Happy Holidays!"

var monthtext=new
Array("Jan","Feb","Mar","April","May","June","July","Aug","Sep","Oct","Nov","Dec")
theoccasion.setMonth(theoccasion.getMonth()-1) //change to 0-11 month
format
var showdate="("+monthtext[theoccasion.getMonth()]+"
"+theoccasion.getDate()+")" //show date of occasion

var one_day=1000*60*60*24
var calculatediff=""

calculatediff=Math.ceil((theoccasion.getTime()-today.getTime())/(one_day))
if (calculatediff<0){ //if bday already passed
var nextyeartoday=new Date()
nextyeartoday.setFullYear(today.getFullYear()+1)
calculatediff=Math.ceil((nextyeartoday.getTime()-today.getTime())/(one_day)+calculatediff)
}

//Display message accordingly
var pluraldayornot=(calculatediff==1)? "day" : "days"
if (calculatediff>0)
   document.write("<b>"+calculatediff+" "+pluraldayornot+"
"+beforeOccasionText+" "+showdate+"!</b>")
else if (calculatediff==0)
   document.write("<b>"+onOccasiontext+" "+showdate+"!</b>")

</script>


On Wed, 17 Sep 2008 19:21:43 +0200, Stig Johansen <wopr.dk@gmaill.com>
wrote:

>Ace wrote:
>
>> Jens Peter Karlsen mener:
>>> Ikke muligt. Hvis du i stedet for Titlebar skulle mene statusbar så er
>>> dette muligt i nogle ældre Browsere.
>>> Kort sagt, vis det et sted på siden i stedet.
>>
>> Ikke muligt?? Undskyld, men er det en konstatering der bunder i
>> omtvistelig logik, eller er det blot en formodning?
>> Grunden til jeg spørger er, at det virker ret bemærkelsesværdigt hvis det
>> slet ikke skulle kunne lade sige gøre, når det nu engang er muligt at få
>> så meget andet til at stå i titlebaren.
>>
>> Jeg har ganske vidst ikke særlig stor indsigt i JavaScript, men er det
>> ikke muligt i et countdown-script, at sige noget a la
>> parent.document.title= et sted, og så få nedtællingen vist deri i stedet
>> for et layer eller noget?
>
>Godt spørgsmål.
>Jeg kan godt ændre title (og visning i titlebar) ved at bruge eks.
>document.title = 'Ny title'
>I hhv Firefox 3, IE 6, samt Konqueror.
>Men det kan være det ikke virker i nyere IE'ere, som jeg desværre ikke har
>adgang til hér.

Stig Johansen (18-09-2008)
Kommentar
Fra : Stig Johansen


Dato : 18-09-08 21:30

Jens Peter Karlsen wrote:

> Jeg vil dog stadig fraråde det mange sikkert vil overse det.

Jeg synes også det er en dum ide men..

> Det er
> f.eks. sjældent at jeg kikker på titlen.

Title, synes jeg, er ret vigtig.
På min win2k får jeg vist title når jeg skifter mellem en masse FF'ere med
alt+tab.

--
Med venlig hilsen
Stig Johansen

preben nielsen (29-09-2008)
Kommentar
Fra : preben nielsen


Dato : 29-09-08 19:34

"Ace" <ace@clubace.dk> skrev i meddelelsen
news:48d0f0a3$0$90276$14726298@news.sunsite.dk...
> Hejsa
>
> Hvordan får man en dynamisk countdown i titlebaren, som tæller


Det kan du da forhåbentlig ikke få mulighed for.

Din webside kan/skal da slet ikke vide, hvilken type vindue det kører i, og
om det vindue overhovedet har en titlebar.

-p


John S. Thomsen (29-09-2008)
Kommentar
Fra : John S. Thomsen


Dato : 29-09-08 22:41

preben nielsen wrote:
> "Ace" <ace@clubace.dk> skrev i meddelelsen
> news:48d0f0a3$0$90276$14726298@news.sunsite.dk...
>> Hejsa
>>
>> Hvordan får man en dynamisk countdown i titlebaren, som tæller
>
>
> Det kan du da forhåbentlig ikke få mulighed for.
>
> Din webside kan/skal da slet ikke vide, hvilken type vindue det kører i,
> og om det vindue overhovedet har en titlebar.

Der er muligt at lave en dynamisk countdown i titlebaren.

Her en simpel udgave:

<script>
offset=(new Date()).getTime()+11*1000;
interval=setInterval(function(){
var seconds=Math.floor((offset-(new Date()).getTime())/1000);
if(seconds>0)document.title=seconds;else
{document.title="Cookie Time!";clearInterval(interval);}},200);
</script>

Testet i Firefox 3.

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

Månedens bedste
Årets bedste
Sidste års bedste