webForumDet fria alternativet

Placeringen av javascript

JavaScriptur Javascript

8 svar · 387 visningar · startad av learn

Medlem sedan jan. 20051 130 inlägg
Frågan#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å?.

Medlem sedan dec. 20025 483 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).

Medlem sedan jan. 20051 130 inlägg
#3

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

Medlem sedan dec. 20025 483 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 ;)

Medlem sedan nov. 20017 144 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.

Medlem sedan jan. 20051 130 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).....

Medlem sedan dec. 20025 483 inlägg
#7

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

Medlem sedan jan. 20051 130 inlägg
#8

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

Medlem sedan dec. 20025 483 inlägg
#9

Jag skulle nog inkludera på den aktuella sidan.

133 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)