Error script?

JavaScript

3 svar · 186 visningar · startad av nordan

Medlem sedan juni 2000949 inlägg
Trådstart#1

Hej!
Om man har detta script för att placera ett lager på rätt ställe beroende av upplösning.

<script type="text/javascript" language="JavaScript">
<!--
function pos(){
 if(document.layers){document.layers["lager1"].left=(window.innerWidth/2)-252;}
else if(document.all){document.all("lager1").style.left=(document.body.offsetWidth/2)-252;}
else
if(document.getElementById){document.getElementById("lager1").style.left=(window.innerWidth/2)-252;}
</script>

Kan detta script leda till ett javascript error som ibland och ibland inte dyker upp?
Kan man byta ut paranteseran till klamrar på lagernamnen :q utan att det blir fel? eller finns det någon risk med detta?
Nuvarande kod:
else if(document.all){document.all("lager1")
byter ut
else if(document.all){document.all["lager1"]
Jag har bytt ut detta på en sida och det verka funka utan att det blir error
Finns det någon risk med detta script?

<script type="text/javascript" language="JavaScript">
<!--
function pos(){
 if(document.layers){document.layers["lager1"].left=(window.innerWidth/2)-252;}
else if(document.all){document.all["lager1"].style.left=(document.body.offsetWidth/2)-252;}
else
if(document.getElementById){document.getElementById("lager1").style.left=(window.innerWidth/2)-252;}
</script>
Medlem sedan juni 20004 308 inlägg
#2

Problemet beror på att du delar fönstrets bredd med 2 och därmed riskerar en 50% chans att få ett decimaltal som svar. Det är svårt för webbläsaren att placera ett lager på 112,5 pixlar :)

Använd alltså parseInt(...uträkning...) för att få ut heltal.

Sedan föreslår jag den senare varianten (hakparenteser).

Medlem sedan juni 20008 205 inlägg
#3

Fast kanske Math.round(uträkning) vore bättre än parseInt(uträkning)...

Medlem sedan juni 20004 308 inlägg
#4

Ja, det är klart. Man vill ju inte riskera att lagret sitter 1 pixel fel ;)

268 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)