Avatar billede tknudsen Nybegynder
01. september 2001 - 11:07 Der er 10 kommentarer og
1 løsning

tildeling af funktion

Er det muligt at tildele funktioner til et html-dokuments tag events via javascript ?

Jeg vil gerne tildele <body onload> en funktion via javascript. Noget i stil med:

document.body.onload = onLoadEvent;

function onLoadEvent()
{
  alert(\'dims\');
}
Avatar billede jakoba Nybegynder
01. september 2001 - 12:04 #1
Ja du kan gøre det nårsomhelst i en <script sektion.

<script language=\'javascript\'>

function minOnload () { // nb: funktionen skal ikke have nogen parametre.
    alert(\'dims\')
};

window.onLoad = minOnload;  // ingen () efter funktionesnavmet.

<script>

faren med det er så at du risikerer at gøre det i 2 forskellige script uden at lægge mærke til det, med det resultat at det kun er den sidste der gølder.

mvh JakobA
Avatar billede Slettet bruger
01. september 2001 - 12:11 #2
Ja, det er muligt, så længe du sørger for, at scriptet står efter det tag, som du vil tildele et event. Det kræver nemlig, at objektet er indlæst først. Men jeg ville til enhver tid fortrække fx: <body onload=\"...\"> i stedet for dens onde tvillingebror i javascript!

P.S. Hvorfor testede du ikke bare selv?
Avatar billede Slettet bruger
01. september 2001 - 12:11 #3
Øv, hvor er jeg langsom @8-))
Avatar billede tknudsen Nybegynder
01. september 2001 - 12:14 #4
phoenixv >> jeg testede skam osse - tænkte bare ikke lige på at det var en window egenskab - se evt. spørgsmål

jakoba >> tak

Avatar billede olebole Juniormester
01. september 2001 - 13:31 #5
<ole>
tknudsen >> Det er den gamle window-/document-forvirring i JavaScript, der er skyld i din tvivl.

document-objektet har godt nok en location-property, som man før i tiden brugte til at loade et dokument i et vindue:
  onclick=\"document.location=\'noget.html\';\"
Det, har W3C indset, er noget rod - da dokumentet jo loades ind i vinduet. Derfor har de nu understreget, at document.location er uønsket og formodentlig bliver fjernet fra sproget på sigt og afløst af:
  onclick=\"window.location=\'noget.html\';\"
Det er derfor ikke så mærkeligt, at du vil checke, hvornår \'document\' er færdig med at loade - men det ER altså \'window\', der skal være færdig med at loade.  :)
/mvh
</bole>
Avatar billede olebole Juniormester
01. september 2001 - 13:39 #6
Problemet er bare, at der mangler konsekvens! Derfor er jeg også uenig med de to andre svarere.
\'window.onload = myOnload;\' burde vi foretrække for \'<body onload=\"myOnload();\">\', da det tydeliggør, at \'onload\' er en handler knyttet til window.objektet (ligesom location) og ikke til dokumentet. Det ville skabe mere logik på dette område af JavaScript og gøre denne niche af sproget mere \'strikt\'.
I programmerings sprog bryder vi os ikke om \'uregelmæssige verber\'  :)
/mvh
Avatar billede jakoba Nybegynder
01. september 2001 - 13:44 #7
En stor del af problemet er evel at vi ikke rigtig har nogen <window html kommando at lægge den handler ind i. Burde nærmest ligge i <html> kommandoen :)
Avatar billede olebole Juniormester
01. september 2001 - 13:54 #8
Enighed i klassen! Så skal vi bare have tysklæreren (W3C) med på ideen om at afskaffe de forbandede uregelmæssige verber!  *LoooL*
/mvh
Avatar billede roenving Novice
04. september 2001 - 05:22 #9
Hvorfor snakker tysklæreren så swahili meget af tiden ?*S*
Avatar billede jakoba Nybegynder
04. september 2001 - 13:27 #10
roenving >> Det hedder javascript! :-))
sorry, ku ikke dy mig.

mvh JakobA
Avatar billede roenving Novice
04. september 2001 - 13:40 #11
Oh ... Yes !~]
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