Avatar billede thinge Nybegynder
05. april 2002 - 15:48 Der er 16 kommentarer og
2 løsninger

skal javascript funktioner altid stå i starten af et html dok.

eller kan man placere dem hvor man vil
Meget simplet spørgsmål

/thinge
Avatar billede otis Nybegynder
05. april 2002 - 15:51 #1
bare de står inden funktionen kaldes vil jeg mene... kan du ikke bare prøve, istedet for at oprette et spørgsmål ? :)
Avatar billede otis Nybegynder
05. april 2002 - 15:52 #2
men for at gøre koden overskuelig placeres de oftest i toppen
Avatar billede thinge Nybegynder
05. april 2002 - 15:55 #3
Jo selvfølgelig kan jeg det, men det er jo fredag og vil gerne være færdig med denne rapport om Javascript.... så du ved.. det er lidt lettere at spørge herinde :o)
/thinge
Avatar billede jakoba Nybegynder
05. april 2002 - 16:06 #4
Nej da.
Men hvis du placerer dem et andet sted skal du lige lære reglerne for hvor navne kan ses fra.

problemet er at du jo nemt kad definere det samme navn to forskellige steder:

<head>
<script>
var olsen = 45;
</script>
</head>
<body onload="alert( olsen );">
<script>
var olsen = "her er olsen i body";
alert( olsen );
</script>
<a href=...
  onmouseover="alert( window.olsen );"
  onmouseout="alert( document.olsen );"
  onclick="alert( olsen );"
  >

</body>

det bliver til 2 variable der begge hedder olsen.
den olæsen der ligger i head er definere i browserens window-objekt, nårsom helst noget javascript ikke kan hitte et navn der den står vil den kikke efter det i window og bruge det der defineret der hvis det findes.

en rimelig simpel regel som IE så har udvidet så hvis det heller ikke findes i window kikker IE i document objektet (jeg ville foretrække at den meldte fejl for det gør det svært at finde fejl)

mvh JakobA
Avatar billede Slettet bruger
05. april 2002 - 16:48 #5
JavaScript sættes normalt i <head>, men hvis det fx skal bruge dokumentets størrelse og derfor først kan reagere, når <body>-tagget er indlæst, så skal det selvfølgelig sættes i <body>. Også når du fx bruger document.write() og vil udskrive noget tekst, bør du sætte det i <body>, som om du selv havde skrevet teksten ind uden et script.
Avatar billede =maddog= Nybegynder
05. april 2002 - 16:54 #6
Man behøver ikke sætte det i BODY hvis det er en browser der accepterer funktions pointers. F.eks
document.body.onload = function() {
  // kode der udføres efter body er loaded
}
Eller
document.body.onload = init
function init() {
  // kode
}
Avatar billede seamus Nybegynder
05. april 2002 - 18:34 #7
Funktioner og såkaldte "builders" placeres i headeren af dokunentet. Der er også en stor verden indenfor "bodyscripts", hvor f.eks. man definerer en datofuntion i headeren og kalder og udskriver den i bodyen via document.write(), som nævnt ovenfor. Et andet eksempel er roll-over effekter, hvor variablerne og deres location defineres i headscriptet, og derefter kaldes de nede i bodyen vha. et script i <A>-tags'ne...

Held og lykke med dín rapport...
Avatar billede olebole Juniormester
06. april 2002 - 02:57 #8
<ole>
Hvis det er til en rapport, skal du nok ikke skrive:
  document.body.onload
Det hedder:
  window.onload

Endvidere kan du loade et script on the fly i IE:

<script id="ib" type="text/JavaScript"></script>

<button onclick="document.getElementById('ib').src='bo.js'">Load 'bo.js'</button>

<button onclick="document.getElementById('ib').src='bla.js'">Load 'bla.js'</button>

Faktisk ganske anvendeligt - men *kun* i IE  ;o)
/mvh
</body>
Avatar billede thinge Nybegynder
06. april 2002 - 14:27 #9
Er det rigtig forstået at standarden er at pladsere metoder (function) i toppen af et dokument (i head)??
Avatar billede jakoba Nybegynder
06. april 2002 - 14:39 #10
Ja. Det gør man næsten altid.
Avatar billede thinge Nybegynder
06. april 2002 - 14:43 #11
Otis og jakoba  kom med et svar, så deler jeg pointene
Avatar billede jakoba Nybegynder
06. april 2002 - 14:50 #12
ok
Avatar billede thinge Nybegynder
06. april 2002 - 14:51 #13
nu mangler vi bare Otis
Avatar billede olebole Juniormester
06. april 2002 - 15:02 #14
Otis kommer - ifølge Cole Porter - ikke idag:

Miss Otis regrets she's unable to lunch today.
Madam,
Miss Otis regrets she's unable to lunch today.
She is sorry to be delayed,
but last night down in Lover's Lane she strayed,
Madam,
Miss Otis regrets she's unable to lunch today.

When she woke up and found
That her dream of love was gone,
Madam,
She ran to the man
Who had led her so far astray,
And from under her velvet gown
She drew a gun and shot her lover down,
Madam,
Miss Otis regrets she's unable to lunch today.

When the mob came and got her
And dragged her from the jail,
Madam,
They strung her upon
The old willow across the way,
And the moment before she died
She lifted up her head and cried,
Madam,
"Miss Otis regrets she's unable to lunch today."

... stakkels lille skind!  :o)
/mvh
Avatar billede thinge Nybegynder
06. april 2002 - 15:10 #15
:0)
The king loves YOU
/thinge
Avatar billede olebole Juniormester
06. april 2002 - 15:21 #16
Jaaaahhhhhhh ...... jazz'en er skam ikke død - den lugter blot lidt sært  *LoooL*  :oD
Avatar billede jakoba Nybegynder
06. april 2002 - 15:25 #17
Hmmm. det er ellers tidligt på året for en ny høst.
Avatar billede olebole Juniormester
06. april 2002 - 16:15 #18
*ROTFL* Ja, så skal det da være dyrket i kunstlys .... såkaldt skunk.
Men 'skunk' ...... hmmmmmm ........ jeg sagde jo Jazz'en lugter sært!  *-\
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