webForumDet fria alternativet

'uppräkning' som skickas vidare med formulär

JavaScript

10 svar · 323 visningar · startad av Danielkun

Medlem sedan maj 2003361 inlägg
Frågan#1

Jag har sökt på forumet utan något bra resultat.

Jag vill lägga till en räknare på sidan som visar hur länge man varit där. (Kommer mest att röra sig om minuter) Räknaren ligger i ett formulär och när man skickat iväg den vill jag hämta upp tiden som spenderas på sidan innan.

Har någon ett liknande skript liggande eller nån länk där jag kan hitta mer information?

Medlem sedan aug. 20039 340 inlägg
#2

Ska tiden loggas på servern?

Medlem sedan maj 2003361 inlägg
#3

Det beror på hur du menar med logga

Jag vill läsa in det med ASP och lagra ner det i databas på sidan efter. (Om man nu kan kalla det logga)

Medlem sedan aug. 20039 340 inlägg
#4

Så där:

window.onload = function(){
	starttime = parseInt(new Date().getTime()/1000);

	var da = document.all ? document.all : document.getElementsByTagName("A")

	for (i=0; i<da.length; i++){
		if (da[i].tagName == "A")
			da[i].onclick = function(){
				var sepchar = (this.href.indexOf("?")==-1)?"?":"&";
				var ttarget = this.target ? this.target : "_self";
				var timespent = parseInt(new Date().getTime()/1000) - starttime;
				var turl = this.href + sepchar + "timespent=" + escape(timespent) + "&aturl=" + escape(location.href.split("?")[0]);
				window.open(turl, ttarget);
				return false;
			}
	}
}

Detta lägger du i en .js-fil som du inkluderar mha en script-tagg. Den gör att alla länkar får två querystrings kallade timespent=[antalet sekunder] och aturl=[sidan som tiden spenderades på]

Medlem sedan maj 2003361 inlägg
#5

Jag sparade ner det i i en java.js fil och la till denna tag i body taggen men inget händer

<SCRIPT SRC="java.js" LANGUAGE="Javascript"></SCRIPT>

Medlem sedan aug. 20039 340 inlägg
#6

Har du någo annan funktion som avänder window.onload?

Medlem sedan maj 2003361 inlägg
#7

nej, jag har ingen java alls i documentet.

Medlem sedan aug. 20039 340 inlägg
#8

Kan du skicka dokumentet som det ser ut nu? har du förstått att värdet skickas med en querystring, och måste läsas av, t ex genom php?

Medlem sedan maj 2003361 inlägg
#9

Jo, jag använder ASP för att läsa in querystringen, men 'timespent' läggs väl till i querystringen?

Nu är inte sidan klar. Långt därifrån men om du klickar längst nere på sidan på "click here to start the test" så är skriptet inkluderat på den sidan. jag vill spara ner tiden det tog att skriva den testen..
http://www.iremo.com/japanese-index.asp

Medlem sedan aug. 20039 340 inlägg
#10

Det skulle alltså vara till et formulär. Då kanske detta funkar bättre:

window.onload = function(){
	starttime = parseInt(new Date().getTime()/1000);
	document.forms['wordlist'].onsubmit = function(){
		var timespent = parseInt(new Date().getTime()/1000) - starttime;
		var turl = document.forms['wordlist'].action  + "?timespent=" + escape(timespent) + "&aturl=" + escape(location.href.split("?")[0]);
// alt. byt ut den förra raden mot, om du inte behöver veta vilken sida personen kommer från (Det kan du ju f.ö. ha referrer på servern till):
//		var turl = document.forms['wordlist'].action  + "?timespent=" + escape(timespent);
		document.forms['wordlist'].action = turl;
	}
}

Kul sida. Jag kanske borde ta upp japanskan igen. Det fanns en tid när jag kunde 10 (tio!) kana. :)

Medlem sedan maj 2003361 inlägg
#11

Jätte tack!! det fungerar perfekt nu! :)

260 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)