Permalänk

JavaScript krånglar i IE

Har ett problem. Håller på med ett hemsidebygge och har stött på ett problem.

Använder mig av html dokument med intern css mall samt en extern javascriptfil.

Javascriptregeln går ut på att anpassa hemsidan efter den upplösning besökaren har på sin skärm.

Html filerna :
1280x800.htm
1280x768.htm
1280x720.htm
1280x600.htm
1024x768.htm
800x600.htm

Indexfilen
index.htm :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>bikerepair.se</title>
<script type="text/javascript" src="res.js">
</script>
</head>
<body>
</body>
</html>

JavaScript-filen
res.js :

if ((screen.width==1024) && (screen.height==768)) {
window.location="1024x768.htm";

}

else if ((screen.width==1280) && (screen.height==600)) {
window.location="1280x600.htm";

}

else if ((screen.width==1280) && (screen.height==720)) {
window.location="1280x720.htm";

}

else if ((screen.width==1280) && (screen.height==768)) {
window.location="1280x768.htm";

}

else if ((screen.width==1280) && (screen.height==800)) {
window.location='1280x800.htm';

}

else if ((screen.width==1280) && (screen.height==1024)) {
window.location="800x600.htm";

}

else if ((screen.width==800) && (screen.height==600)) {
window.location="800x600.htm";

}

Detta funkar klockrent i opera, chrome, ff, safari - u name it, men inte i Internet Explorer.

Hjälp mig förstå varför detta är ?

MVH Holm

Permalänk
Medlem

Varför måste du göra såhär? Gör en CSS som klarar flera skärmstorlekar istället.

Sen just den här koden där du jämför med ==
Vad händer om man har upplösningen 1680x1050 ? Ska man inte få se något då? Eller 1920x1200 ? Det finns hur många kombinationer som helst...

Permalänk
Citat:

Ursprungligen inskrivet av azoapes
Varför måste du göra såhär? Gör en CSS som klarar flera skärmstorlekar istället.

Sen just den här koden där du jämför med ==
Vad händer om man har upplösningen 1680x1050 ? Ska man inte få se något då? Eller 1920x1200 ? Det finns hur många kombinationer som helst...

Kodningen är inte klar. Ska skriva in flera upplösningar och har jag inte lyckats få med alla upplösningar, vilket är ganska svårt, så har jag en standardmall som jag länkar till. Detta gör jag för att få sidan så exakt som möjligt.

Kan även tilläggas att det endast är IE v.8 som inte köper denna kod.

Permalänk
Medlem

Vad händer ifall användaren inte har fönstret maximerat? Jo, då kommer du få en skum upplösning som t. ex 1284x643. Du borde ändra ditt sätt att stödja multiupplösningar.

Permalänk
Citat:

Ursprungligen inskrivet av Sir. Haxalot
Vad händer ifall användaren inte har fönstret maximerat? Jo, då kommer du få en skum upplösning som t. ex 1284x643. Du borde ändra ditt sätt att stödja multiupplösningar.

Förslag?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av poorlonesomehb
Förslag?

Om du nu absolut måste anpassa sidan efter upplösning genom att länka till olika sidor, istället för att skriva CSS som klarar alla upplösningar, så får du isf anpassa sidan efter bredd, och sedan använda if-satserna såhär:

if(document.documentElement.clientWidth >= 1200) { } else if (document.documentElement.clientWidth >= 1000) { } else if (document.documentElement.clientWidth >= 700) { } else { }

Lägg märke till att document.documentElement.clientWidth berättar vilken storlek webbläsarfönstret har, medan screen.width berättar vilken skärmupplösning man har. Kanske 50 % av besökarna använder maximerat fönster, därför fungerar det inte att kolla skärmupplösningen.

Anledningen till att vi frågar dig varför du måste välja HTML efter webbläsarfönstrets storlek, är att det aldrig någonsin görs på det sättet på grund av att det har många nackdelar. Därför lär du ha en ovanlig och bra anledning, eller bara leker runt och testar om det går att göra.