Avatar billede googolplex Novice
17. januar 2004 - 23:25 Der er 8 kommentarer og
1 løsning

Hvor skal mine funktioner ligge

Jeg plejer at ligge mine javascript funktioner i <head></head>, men har et tilfælde hvor det er bøvlet.

Er det i orden at lægge dem et andet sted, så længe jeg ligger dem før jeg skal bruge dem ?
Avatar billede skovenborg Nybegynder
17. januar 2004 - 23:33 #1
Fra W3C HTML 4.01 recomendation:
"This element may appear any number of times in the HEAD or BODY of an HTML document."

Så det er helt fint at gøre det :-)
Avatar billede skovenborg Nybegynder
17. januar 2004 - 23:36 #2
...det sådan set bare normalt at lægge den oppe i head'eren, hvor man for god ordens skyld placerer sine funktioner og lignende. Men til direkte output (fx med document.write) så er det jo bedst at placere scriptet i body'en.
Avatar billede googolplex Novice
17. januar 2004 - 23:38 #3
Ok, kan også godt lide det med 'any number of times', det løser mit andet problem :)

Men der må da være en forskel på, om du ligger funktioner i <head> eller <body> ?

Hvis der ligger 2 funktioner med samme navn, er det så den sidste der er gældende ?
Avatar billede skovenborg Nybegynder
17. januar 2004 - 23:44 #4
jo, rækkefølgen tæller. Et script bliver nemlig kørt i denne rækkefølge:
1. Scripts i headeren
2. Scripts i body'en
3. Scripts under events
Avatar billede skovenborg Nybegynder
17. januar 2004 - 23:49 #5
Hvis vi tager et eksempel med en meget simpel side:
<html>
<head>
<script type="text/javascript">
  function foo()
  {
      alert("FOO");
  }
  foo();
</script>
</head>
<body style="background-color:#f00">
<script type="text/javascript">
  function foo()
  {
      alert("BAR");
  }
  foo();
</script>
<a href="java script:void(0);" onclick="foo();">KLIK HER</a>
</body>
</html>

Hvis du prøver at køre den kan du se at der inden den røde farve kommer kommer en alertbox med teksten "FOO" - altså funktionen foo() fra headeren. Senere kommer så alerten fra funktionen foo() i body'en - læg mærke til at den røde farve er kommet frem på dette tidspunkt.

Til sidst kan du prøve at klikke på linket som kalder funktionen foo() igen - og som du sikkert vil kunne se så har scriptet i body'en overskredet funktionen i headeren.
Avatar billede skovenborg Nybegynder
17. januar 2004 - 23:50 #6
...men for en god ordens skyld bør du alligevel give dine funktioner et unikt navn - medmindre du har en god grund til ikke at gøre det ;-)
Avatar billede googolplex Novice
17. januar 2004 - 23:51 #7
Ok, svar :)
Avatar billede skovenborg Nybegynder
17. januar 2004 - 23:53 #8
værsåartig :-)
Avatar billede skovenborg Nybegynder
18. januar 2004 - 00:07 #9
og takker for point :-)

har egentlig aldrig tænkt på det du spurgte om (ud over rækkefølgen) - så du er bestemt ikke den eneste der har fået noget ud af dette spørgsmål ;-)
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