webForumDet fria alternativet

Placeringen av javascript

8 svar · 387 visningar · startad av learn

learnMedlem sedan jan. 20051 143 inlägg
#1

Vart i koden ska man placera ett javascript - inom <head>, inom <body> eller vart som helst? Om det beror på, vad beror det på?

Jag har en massa sådana här:

<script language="JavaScript" type="text/javascript" src="funktion.js"></script>

Kan jag placera dessa på det ställe på sidan där funktionen används..?

Vad ska man tänka på?.

Peter SMedlem sedan dec. 20025 484 inlägg
#2

Du kan placera den i stort sett var som helst. Dock är det några saker att tänka på:

...
<script>typeof document.getElementById("foo") == undefined</script>
<span id="foo"></span>
...

...
<span id="foo"></span>
<script>typeof document.getElementById("foo") == object/script>
...

I det första exemplet returneras undefined eftersom span-elementet inte lästs in ännu. I det andra exemplet, däremot, fungerar det som tänkt.

Genom att placera include-direktivet inom <head></head>, får du alltså se till att skriptet inte refererar till element som ännu inte lästs in (vanligt är att window.onload används).

learnMedlem sedan jan. 20051 143 inlägg
#3

OK, men varför stoppa in i <head>, finns det ngn fördel, vad är skillnaden?

Peter SMedlem sedan dec. 20025 484 inlägg
#4

En tanke med <head> är väl att man där stoppar information som inte skall visas i webbläsaren, t.ex. meta- och css-taggar samt JS-kod för validering m.m. Vill du däremot använda document.write() är ju <head> högst olämplig ;)

Jesper TMedlem sedan nov. 20017 058 inlägg
#5

Det kanske finns ett finare ord på svenska, men det är väl mestadels som standard att lägga javascript-blocket i head.
Om du ser Peters exempel så kräver ju det att script blocket ligger efter span-taggen.
Alternativt att du lägger det i en window.onload-funktion.

learnMedlem sedan jan. 20051 143 inlägg
#6

Hmm, så hur ska jag göra. Känns ju lite onödigt att ha med funktioner på sidor som de inte används på (som det blir om jag lägger dem i head).....

Peter SMedlem sedan dec. 20025 484 inlägg
#7

Skapa flera include-filer och inkludera endast de som behövs på aktuell sida.

learnMedlem sedan jan. 20051 143 inlägg
#8

OK, ska jag inkludera i head (mha if-satser) eller ska jag inkludera på den aktuella sidan?

Peter SMedlem sedan dec. 20025 484 inlägg
#9

Jag skulle nog inkludera på den aktuella sidan.

Genererad på 378 ms · cache AV · v20260730165559-full.f96bc7eb