Stampare un messaggio alla fine del countdown in Javascript

simo10piu

Nuovo Utente
4 Mag 2009
24
0
0
Ciao a tutti, non sono per niente ferrato in javascript e vorrei un aiuto per fare una semplice cosa.
Ho un countdown (giorni ore minuti e secondi) che quando termina riparte a contare con davanti il simbolo "-".
Io vorrei che quando termina il conteggio invece, al posto dei numeri, apparisse una frase impostata.
Io ci ho provato davvero, mi sono informato ma non riesco a farlo funzionare,mi servirebbe un consiglio.
Ho creato una variabile "current" alla quale ho dato il valore di una frase esempio, poi ho messo (un pochino a caso) la funzione "document.write" dappertutto ma non funziona.
Il codice è il seguente, se potete anche darmi una spiegazione sul come si fa ed il perchè si scrive in una certa maniera, vi ringrazio, mi piacerebe capire e imparare.

Codice:
<script type="text/javascript">
var futureyear=2011
var futuremonth=09
var futureday=4
var current="oggi è finito il counter!"
var displaytype="vediall"
var digitordate="isdate"
var aftercountdown="stopit"
var digitfrom=100
var digitto=0
var speed=1

var countdownid=new Array()
var futuredate
var nowdate
var resultoreraw
var resultore
var resultminutiraw
var resultminuti
var resultsecondiraw
var resultsecondi

var p_secondi
var p_minuti
var p_ore
var p_giorni

var resultsecondionly
var resultminutionly
var resultoreonly
var content

var i_countdown=-1
var countdownid

var step=1
speed*=1000

if (digitfrom>digitto) {step=-1}
if (digitfrom<digitto) {step=1}

var browserinfos=navigator.userAgent 
var ns4=document.layers
var ie4=!document.getElementById&&document.all&&!browserinfos.match(/Opera/)
var ie5=document.getElementById&&document.all&&!browserinfos.match(/Opera/)
var ns6=document.getElementById&&!document.all&&!browserinfos.match(/Opera/)
var opera=browserinfos.match(/Opera/)  

function setfuturedate() {
	futuredate=new Date(futureyear,futuremonth,futureday,0,0,0)
	if (digitordate=="isdigit") {content=digitfrom-step	}
	docountdown()
}

function docountdown() {
	if (digitordate=="isdate") {
		calculateresults()
		formatresults()
		displayresults()
		setTimeout("docountdown()",speed)
	}
	else if (digitordate=="isdigit") {
		content+=step	
		displayresults()
		if (content==digitto) {
			setTimeout("happensafter()",speed)
		}
		else {
			setTimeout("docountdown()",speed)
		}
	}
}

function firstcountdown() {
	if (digitordate=="isdate") {
		futuredate=new Date(futureyear,futuremonth,futureday,0,0,0)
		calculateresults()
		formatresults()
	}
	else if (digitordate=="isdigit") {
		content=digitfrom
	}
}

function calculateresults() {
nowdate=new Date()
resultgiorniraw=(Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60/24
if (displaytype!="vediall") {
	resultsecondionly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000)
	resultminutionly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60)
	resultoreonly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60)
}
else {
	resultgiorni=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60/24)
	resultoreraw=(resultgiorniraw-resultgiorni)*24
	resultore=Math.floor((resultgiorniraw-resultgiorni)*24)
	resultminutiraw=(resultoreraw-resultore)*60
	resultminuti=Math.floor((resultoreraw-resultore)*60)
	resultsecondiraw=(resultminutiraw-resultminuti)*60
	resultsecondi=Math.floor((resultminutiraw-resultminuti)*60)
	}
}

function formatresults() {
	if (displaytype=="vediall") {
		if (resultgiorni>1) {p_giorni="giorni"}
		else {p_giorni="day"}
		if (resultminuti<10) {resultminuti="0"+resultminuti}
		if (resultsecondi<10) {resultsecondi="0"+resultsecondi}
		content=resultgiorni+" "+p_giorni+" "+resultore+"h "+resultminuti+"m "+resultsecondi +"s"
	}
	else if (displaytype=="vedigiorni") {
		if (resultgiorni>1) {p_giorni="giorni"}
		else {p_giorni="day"}
		content=resultgiorni+" "+p_giorni
	}
	else if (displaytype=="vediore") {
		content=resultoreonly+" Ore"
	}
	else if (displaytype=="vediminuti") {
		content=resultminutionly+" min"
	}
	else if (displaytype=="vedisecondi") {
		content=resultsecondionly+" sec"
	}
}

function happensafter() {
	if (aftercountdown=="repeatit") {
		if (digitordate=="isdigit") {content=digitfrom-step}
		docountdown()
	}
	if (aftercountdown!="stopit" && aftercountdown!="repeatit") {
		document.location.href=aftercountdown
	}
}

function displayresults() {
	if (ie4) {
		for (i=0;i<=countdownid.length-1;i++) {
			var thisclock=eval(countdownid[i])
			thisclock.innerHTML=content
		}
	}
	else {
		for (i=0;i<=countdownid.length-1;i++) {
			document.getElementById(countdownid[i]).innerHTML=content
		}
	}
}

function setcountdown() {
	if (ns4 || ie4 || ie5 || ns6 || opera) {
		firstcountdown()
		i_countdown++
		countdownid[i_countdown]="countdown"+i_countdown
		document.write("<span id='"+countdownid[i_countdown]+"' style='position:relative'>"+content+"</span>")
	}
}

if (ie4 || ie5 || ns6 || opera) {
	onload=setfuturedate
}
</script>

Grazie mille a tutti.

Ciao
 
Ultima modifica di un moderatore:

Discussioni simili