---
title: "Skärmupplösning."
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/165616-skärmupplösning"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "nilleonline"
published: "2007-10-18T15:47:55.000Z"
updated: "2007-10-19T12:26:05.000Z"
replies: 15
views: 823
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/165616-skärmupplösning"
---

# Skärmupplösning.

## #1 — nilleonline, 2007-10-18T15:47Z

Jag vill använda olika stilmallar beroende på om användaren har större eller mindre än 1024 i skärmupplösning. Vad jag upfattade det som går det tyvärr inte att göra med asp, så det får göras med javascript. Men då har jag ett problem. Jag hade tänkt använda något script liknande detta: 

```
if (parseInt(navigator.appVersion) >= 3){
	if (navigator.appName == "Netscape"){
		tools=java.awt.Toolkit.getDefaultToolkit();
		screen=tools.getScreenSize();
	}
	w=screen.width;
	if(w == 800){
		document.write("<link rel=stylesheet href=\"res800.css\" type=\"text/css\">");
	} else if(w == 1024){
		document.write("<link rel=stylesheet href=\"res1024.css\" type=\"text/css\">");
	} else {
		document.write("<link rel=stylesheet href=\"resother.css\" type=\"text/css\">");
	}
}
```

Men problemet med det scriptet är att jag använder xhtml där inte document.write fungerar. Hur löser jag det på någon annat sätt eller har ni tipps på andra bättre scripts?

Permalänk: https://www.webforum.nu/p/165616

## #2 — Peter S, 2007-10-18T15:52Z

Document.write fungerar utmärkt med XHTML. Lägg

```
function getStyleSheetFromResolution()
{
	if (parseInt(navigator.appVersion) >= 3){
		if (navigator.appName == "Netscape"){
			tools=java.awt.Toolkit.getDefaultToolkit();
			screen=tools.getScreenSize();
		}
		w=screen.width;
		if(w == 800){
			document.write("<link rel=stylesheet href=\"res800.css\" type=\"text/css\"/>");
		} else if(w == 1024){
		document.write("<link rel=stylesheet href=\"res1024.css\" type=\"text/css\"/>");
		} else {
			document.write("<link rel=stylesheet href=\"resother.css\" type=\"text/css\"/>");
		}
	}
}
```

...i en fil med exempelvis namnet scripts.js. Sedan

```
...
<head>
 <script type="text/javascript" src="scripts.js"></script>
 <script type="text/javascript">
  //<![CDATA[
  getStyleSheetFromResolution();
  //]]>
 </script>
</head>
```

Huruvida syftet eller metoden är bra är nog flera villiga att diskutera.

Permalänk: https://www.webforum.nu/p/2042734

## #3 — nilleonline, 2007-10-18T16:02Z

Det gör det väll inte när man skickar xhtml som man ska. Jag skickar det inte som vanlig html.

Permalänk: https://www.webforum.nu/p/2042737

## #4 — Peter S, 2007-10-18T16:09Z

Varför skulle inte det fungera?

Är du säker på att du inte skickar det som "vanlig html"?

Permalänk: https://www.webforum.nu/p/2042739

## #5 — nilleonline, 2007-10-18T16:12Z

Ingen aning. Är inte så inne på javascript, men jag hade problem med script förut som använde document.write i xhtml. Men jag få helt enkelt testa och återkomma om det inte fungerar.

Permalänk: https://www.webforum.nu/p/2042740

## #6 — colione, 2007-10-18T16:30Z

Det är bättre att använda som funktioner som createElement/createElementNS.

Ett annat alternativ är att länka in en php-sida som genererar stilmallen och tar upplösningen som en query-string.

Men det hade varit ännu bättre om du gjorde så att designen kunde anpassa sig efter storleken på sidan direkt, då många liksom jag inte surfar med läsaren maximerad.

Permalänk: https://www.webforum.nu/p/2042742

## #7 — nilleonline, 2007-10-18T16:33Z

> **Peter S skrev:**
>
> Document.write fungerar utmärkt med XHTML. Lägg
>
> ```
> function getStyleSheetFromResolution()
> {
> 	if (parseInt(navigator.appVersion) >= 3){
> 		if (navigator.appName == "Netscape"){
> 			tools=java.awt.Toolkit.getDefaultToolkit();
> 			screen=tools.getScreenSize();
> 		}
> 		w=screen.width;
> 		if(w == 800){
> 			document.write("<link rel=stylesheet href=\"res800.css\" type=\"text/css\"/>");
> 		} else if(w == 1024){
> 		document.write("<link rel=stylesheet href=\"res1024.css\" type=\"text/css\"/>");
> 		} else {
> 			document.write("<link rel=stylesheet href=\"resother.css\" type=\"text/css\"/>");
> 		}
> 	}
> }
> ```
>
> 
> ...i en fil med exempelvis namnet scripts.js. Sedan
>
>
> ```
> ...
> <head>
>  <script type="text/javascript" src="scripts.js"></script>
>  <script type="text/javascript">
>   //<![CDATA[
>   getStyleSheetFromResolution();
>   //]]>
>  </script>
> </head>
> ```
>
> 
> Huruvida syftet eller metoden är bra är nog flera villiga att diskutera.

Jag får det inte att fungera i vanlig html ens. Fattar inte vad som är fel. Både html,css och javascript filen ligger i samma mapp.

Permalänk: https://www.webforum.nu/p/2042743

## #8 — Peter S, 2007-10-18T17:23Z

I IE7 fungerar det för mig. I FF, däremot, fick jag göra följande justering:

```
navigator.appName == "Netscape" && !document.getElementById
```

Permalänk: https://www.webforum.nu/p/2042761

## #9 — bossse, 2007-10-18T17:56Z

Du kan ju kolla [här](http://norrtalje.web.surftown.se)
Adressen slutar sedan med 800.html, 1024.html eller 1280.html beroende av användarens upplösning.
Man hinner dock aldrig se scriptet då man ju slussas vidare direkt.
Du har det nedan, har använt det till min sida i ett par år nu.

```
<script language="JavaScript" type="text/javascript">
<!--
if (screen.width>1200)  //Här länkar du till den sida som man ska komma till om skärmupplösningen är större än 1024 pixlar bred.
{window.location="1280.html";}
else if ((screen.width==1024) && (screen.height==768)) //Här länkar du till den sida som man ska komma till om skärmupplösningen är 1024x768.
{window.location="1024.html";}
else if ((screen.width==800) && (screen.height==600)) //Här länkar du till den sida som man ska komma till om skärmupplösningen är 800x600.
{window.location="800.html";}
else if (screen.width<800)
{
	window.location="liten_upplosning.html"; //Här länkar du till den sida som man ska komma till om skärmupplösningen är mindre än 800 pixlar bred.
}
else
	window.location="1280.html";    //Här länkar du till den sida som man ska komma till om skärmupplösningen är okänd.
	
//-->
</script>
```

Permalänk: https://www.webforum.nu/p/2042766

## #10 — nilleonline, 2007-10-18T18:04Z

Yes nu fungerar det! Tack peter! Det fungerade även i xhtml. Synd att de bara går att göra i javascript så inte alla kan ta del av funktionen. Men jag får lägga narrow css:en i en \<noscript\>.

Permalänk: https://www.webforum.nu/p/2042770

## #11 — Peter S, 2007-10-18T18:05Z

Kanon! :bire 

Glöm inte att markera det svar som löste problemet.

Permalänk: https://www.webforum.nu/p/2042771

## #12 — nilleonline, 2007-10-18T18:06Z

> **bossse skrev:**
>
> Du kan ju kolla [här](http://norrtalje.web.surftown.se)
> Adressen slutar sedan med 800.html, 1024.html eller 1280.html beroende av användarens upplösning.
> Man hinner dock aldrig se scriptet då man ju slussas vidare direkt.
> Du har det nedan, har använt det till min sida i ett par år nu.
> 
>
>
> ```
> <script language="JavaScript" type="text/javascript">
> <!--
> if (screen.width>1200)  //Här länkar du till den sida som man ska komma till om skärmupplösningen är större än 1024 pixlar bred.
> {window.location="1280.html";}
> else if ((screen.width==1024) && (screen.height==768)) //Här länkar du till den sida som man ska komma till om skärmupplösningen är 1024x768.
> {window.location="1024.html";}
> else if ((screen.width==800) && (screen.height==600)) //Här länkar du till den sida som man ska komma till om skärmupplösningen är 800x600.
> {window.location="800.html";}
> else if (screen.width<800)
> {
> 	window.location="liten_upplosning.html"; //Här länkar du till den sida som man ska komma till om skärmupplösningen är mindre än 800 pixlar bred.
> }
> else
> 	window.location="1280.html";    //Här länkar du till den sida som man ska komma till om skärmupplösningen är okänd.
> 	
> //-->
> </script>
> ```

Du borde istället använda dig av min metod då det är grymt mycket bättre att bara byta stilmallarna. Jag skulle aldrig använda sidor med likadant innehåll då det inte gillas av google.

Permalänk: https://www.webforum.nu/p/2042773

## #13 — colione, 2007-10-18T18:26Z

Du skulle använda dig av en annan metod nille, det är grymt mycket bättre att låta sidan anpassa sin storlek mha css och inte js.

Permalänk: https://www.webforum.nu/p/2042778

## #14 — nilleonline, 2007-10-18T19:22Z

> **colione skrev:**
>
> Du skulle använda dig av en annan metod nille, det är grymt mycket bättre att låta sidan anpassa sin storlek mha css och inte js.

Vad är fördelen med det förutom att folket med javascript inaktiverat förlorar den funktionen. Att göra den i % kommer bli grymt jobbigt med massor av problem, och jag vill inte använda tabeller. Men när display:table fungerar fullt ut så skippar jag javascriptet!

Permalänk: https://www.webforum.nu/p/2042797

## #15 — nilleonline, 2007-10-19T11:19Z

Jag komm på att min lösning inte fungerar eftersom \<noscript\> inte är tillåtet innom head. Om jag bara länkar in css filen på vanligt sätt, vilken css mall prioriteras då? Den i javascriptet eller den vanligt länkade? Om jag inte kommer ihåg fel ska vanligt länkade stilmallar prioriteras framför dem sim är länkade med @import. Så det kanske är ett sätt att länka stilmallen för de som inte har javascript med @import? Men vågar jag lita på att alla läsare gör samma prioritering?

Permalänk: https://www.webforum.nu/p/2042935

## #16 — Sasch, 2007-10-19T12:26Z

Det har att göra med placering.

Det är hela tiden den stilmallen som ligger länkad längst ner som har sista tolkningen av samma element som tidigare deklarerats på.

Permalänk: https://www.webforum.nu/p/2042964

---

Tråden på webben: https://www.webforum.nu/amne/javascript/165616-skärmupplösning
