Avatar billede kmx Nybegynder
16. oktober 2002 - 14:25 Der er 4 kommentarer og
1 løsning

Automatisk tilføj tid til links

Jeg mangler et script som automatisk kan tilføje aktuel tid til links IDET DER BLIVER KLIKKET på dem.

Det skal virke HELT UDEN brug af onClick events.
Man skal kunne sætte det ind på en side kun ved at importere en .js fil og måske tilføje en event handler til body.

Der må ikke ændres ved de eksisterende links på siden

Kan det overhovedet lade sig gøre?
Avatar billede kmx Nybegynder
16. oktober 2002 - 14:26 #1
<a href="testside.htm">Klik her!</a>

skal resultere i ->
testide.htm?time=122203
Avatar billede jespernaur Nybegynder
16. oktober 2002 - 19:08 #2
Du skal have en fil alllinks.js som indeholder følgende:

// Convert number to 2 character leading-zero string
function numto2dig( num )
{
  var ret = num.toString();
  if (ret.length == 1) {
      ret = '0' + ret;
  }
  return ret;
}

// onclick handler, which is registered on all links
function alllinks_click( e )
{
  var nexthref = this.href;

  // Get current time
  var tim = new Date();
  // Convert to text
  var texttime = '?time=' + numto2dig(tim.getHours()) +
                            numto2dig(tim.getMinutes()) +
                            numto2dig(tim.getSeconds());

  // Append time to link reference
  nexthref = nexthref + texttime;
  location = nexthref; // Goto the link calculated
  return false;
}

// onload handler for <body> element, will register alllinks_click
// on all link elements in document
function alllinks()
{

  // Add handler to all links.
  for(var d = 0; d < document.links.length; d++) {
      document.links[d].onclick = alllinks_click;
  }

  return false;
}


I de enkelte sider skal du i <head> sektionen tilføje:

<script language="JavaScript" SRC="alllinks.js"></script>

og <body> skal have en onload handler, ligeledes i hver side:

<body onload="alllinks();">

Mvh
Jesper Naur
Avatar billede kmx Nybegynder
17. oktober 2002 - 09:19 #3
Umiddelbart ser det ud til at det virker, men du kan vel ikke lige forklare HVORFOR?!?
Mit problem var at tidspunktet skulle tilføjes på klik tidspunkt og ikke på load tidspunkt. Du kalder en funktion på onLoad som så...
Ja... jeg fatter det ikke...
Avatar billede jespernaur Nybegynder
17. oktober 2002 - 09:33 #4
Hvis du ser nærmere efter vil du opdage, at tidspunktet faktisk BLIVER tilføjet på klik-tidspunktet.
Det der sker er, at onload handleren gennemløber alle links i dokumentet og tilføjer en onclick-handler (dette sker på load-tidspunktet). Når der klikkes, bliver onclick-handleren aktiveret og tilføjer tidspunktet (altså klik-tidspunktet).
Avatar billede kmx Nybegynder
17. oktober 2002 - 09:34 #5
Blæret... så er jeg med...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester