Aktivere JavaScript fra HTML-linker


Det er flere måter man kan aktivere et javascript på. En vanlig måte er gjennom en HTML link.
Linken kan være en anker-tag (<a href=...) rundt en tekst eller et bilde, eller som en del av en "image-map".

Anker-Tagg, for eksempel:

<a href="http://infolinx-no.com">Gå til Infolinx-no</a>

For å få denne linken til å aktivere et javascript skriver vi:

<a href="javascript:scriptNavnet/scriptet">Klikk her</a>

for eksempel:

<a href="javascript:alert('Heisann...')">Klikk her</a>


Prøv her: Klikk her!


Koden forteller nettleseren at den skal aktivere et javascript i stedet for å åpne en link. Dette fungerer også med et bilde:

<a href="javascript:alert('Heisann')"><img src="submit2.gif"></a>

Prøv her:


Bruken av Void
Når man aktiverer et script fra en link vil nettleseren se om etter om scriptet returnerer en verdi. Hvis det gjør det, vil det leseren behandle det som om et nytt sideinnhold skal vises.
Eksempel:

<script language="JavaScript">
function callMe()
{
alert("Hallo");
return "noen verdier...";
}
</script>

<a href="javascript:callMe()">Klikk her!</a>


Prøv dette: Klikk her!

Her blir funksjonen "callMe" kalt opp når noen klikker på linken, "alert" vil vise en beskjed og nettleseren erstatter side-innholdet med "noen verdier...". Dette er ikke særlig vettugt eller interessant, det er en typisk uønsket effekt med retur-verdi.
For å unngå denne siste effekten bruker man "Void". Se eksempel:

<a href="javascript:void(callMe())">Klikk her!</a>


Prøv her: Klikk her!

"Void" forteller nettleseren at den skal ignorere alle return-verdier.


Automatisk oppstart:
For at scriptet skal starte automatisk når siden åpnes brukes onLoad i body-taggen:

<body onLoad="funksjonsnavn()">


Hvis du har flere scripts som skal åpnes automatisk må du arrangere dette annerledes, da 2 eller flere onLoads ikke fungerer i body-taggen.
Du kan imidlertid separere dem med semikolon slik:

<body onLoad="A();B()">


eller lage en ny funksjon som ordner begge scriptene uten onLoad i body-taggen:

<script language="JavaScript">
function C()
{
A();
B();
}
window.onload = C;
</script>


eller sånn hvor du bruker onLoad i body-taggen:

<script language="JavaScript">
function C()
{
A();
B();
}
</script>


...så putter du funksjon C i body-taggen

<body onLoad="C()">



Bruk av "hermetegn":
Når du bruker doble hermetegn (" ") i en setning kan du ikke bruke dem om igjen i mellom hermetegnene.
Dette er galt:

<a href="javascript:alert("Klikk")">Klikk her!</a>


Skal du bruke flere hermetegn må du bruke enkle (' ') for ikke å forvirre nettleseren.
Dette er riktig skrevet:

<a href="javascript:alert('Klikk')">Klikk her!</a>