---
title: "Varför funkat det inte?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/18444-varför-funkat-det-inte"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "eas"
published: "2001-11-06T18:51:00.000Z"
updated: "2001-11-06T22:03:00.000Z"
replies: 10
views: 237
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/18444-varför-funkat-det-inte"
---

# Varför funkat det inte?

## #1 — eas, 2001-11-06T18:51Z

Är det nån smart typ som förstår varför denna kod inte funkar?

```
<script>
lasare=navigator.appName;

if (lasare=="Microsoft Internet Explorer"){
hojd=document.body.clientHeight;
bredd=document.body.clientWidth;
}

else if (lasare=="Netscape"){
hojd=window.innerHeight;
bredd=window.innerWidth;
}

</script>
```

 :q :q :q

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

## #2 — Jojoxx, 2001-11-06T19:14Z

Krockar det med något annat script? Ser inget direkt fel i denna kod, och det funkar i Netscape 4, Mozilla 0.9.5 och Internet Explorer 5.5 (de webbläsare jag har installerade).

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

## #3 — eas, 2001-11-06T19:41Z

Jag tänkte att jag skulle fixa så att ett lager alltid kom i mitten oavsett vilken storlek få fönstret man har.

Här är hela koden:

```
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script>
lasare=navigator.appName;

if (lasare=="Microsoft Internet Explorer"){
hojd=document.body.clientHeight;
bredd=document.body.clientWidth;
}

else if (lasare=="Netscape"){
hojd=window.innerHeight;
bredd=window.innerWidth;
}

</script>

</head>

<body bgcolor="#FFFFFF" text="#000000">

<!--
<div style="position:absolute; top:200px; left:200px">
<img src="start.gif" width="58" height="15"><img src="filarkiv.gif" width="58" height="15"><img src="upload.gif" width="58" height="15"><img src="info.gif" width="58" height="15"> 
</div>
-->

<script>
v_fonster=(bredd-286)/2;
t_fonster=(hojd-167)/2;

document.write('<div style="position:absolute; top:'+v_fonster+'px; left:'+t_fonster+'px">'+
'<img src="fonster.gif" width="286" height="167">'+
'</div>');
</script>

</body>
</html>
```

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

## #4 — Jojoxx, 2001-11-06T20:23Z

Börja med att flytta ner första script-blocket under \<body\>-elementet. Annars kommer Internet Explorer att tycka att objektet document.body inte finns, eftersom det inte blivit skapat än.

Sedan skulle jag använda;
v_fonster=Math.round((bredd-286)/2);
t_fonster=Math.round((hojd-167)/2);
för att se till att du inte får några decimaltal som svar. Blir inge bra om du försöker placera lagret på halv pixel :)

Till sist skulle jag välja att skapa lagret med ren html-kod och sedan flytta det med JavaScrip till rätt plats. Då kommer det även att funka i Netscape 4.x.

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

## #5 — eas, 2001-11-06T20:44Z

**Tack!**

Jag gjorde som du så och flyttade ner scriptet som kollar browsern under body och det funkade fin!!! :) :)

Sen ändrade jag det andra scriptet till

```
<div id=fonster style="position:absolute">
<img src="fonster.gif" width="286" height="167">
</div>

<script>
v_fonster=Math.round((bredd-286)/2);
t_fonster=Math.round((hojd-167)/2);

fonster.style.left=v_fonster;
fonster.style.top=t_fonster;
</script>
```

Det funkar på min dator.
Vet du vad jag kan göra för att få med mig typ Netscape? :q

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

## #6 — Jojoxx, 2001-11-06T21:01Z

Ta en titt på funktionen moveLayerAbs() på [denna sida](http://www.jojoxx.net/jscript/libs/index.html#layerlib).

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

## #7 — eas, 2001-11-06T21:17Z

hmm....
Inte helt perfekt

Vill inte verka tjatig men grjerna flyttar sig inte alls.

document.all\[...\].style är null eller inte ett objekt, du vet?

Hela min kod med din funktion som jag har lagt in och döpt om till flyttaLager!

```
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script>
/* Layerlib.js                           Version 2.1

   Följande funktioner är skrivna av Johan Johansson
   och är fria att användas så länge som dessa rader
   står kvar i omodifierade.

   [url="http://www.jojoxx.net"]http://www.jojoxx.net[/url]   -*-  2001-09-30 */

function flyttaLager(Id,x,y){
	if (document.all){
		if (x) document.all[Id].style.left = x;
		if (y) document.all[Id].style.top = y;
	} else if (document.layers){
		if (x) document.layers[Id].left = x;
		if (y) document.layers[Id].top = y;
	} else if (document.getElementById){
		if (x) document.getElementById(Id).style.left = x+'px';
		if (y) document.getElementById(Id).style.top = y+'px';
	}
}
</script>

</head>

<body bgcolor="#FFFFFF" text="#000000" background="bg.gif" onresize="location.reload()">
<script>
lasare=navigator.appName;

if (lasare=="Microsoft Internet Explorer"){
hojd=document.body.clientHeight;
bredd=document.body.clientWidth;
}

else if (lasare=="Netscape"){
hojd=window.innerHeight;
bredd=window.innerWidth;
}

</script>

<!-- MENY  -->
<div id=meny style="position:absolute">
<img src="start.gif" width="58" height="15"><img src="filarkiv.gif" width="58" height="15"><img src="upload.gif" width="58" height="15"><img src="info.gif" width="58" height="15"> 
</div>

<script>
v_meny=Math.round((bredd-240)/2);
t_meny=Math.round((hojd-197)/2);

flyttaLager(meny,v_meny,t_meny);
</script>

<!-- SLUT PÅ MENYN  -->

<!-- FÖNSTRET  -->

<div id=fonster style="position:absolute">
<img src="fonster.gif" width="286" height="167">
</div>

<script>
v_fonster=Math.round((bredd-286)/2);
t_fonster=Math.round((hojd-167)/2);

flyttaLager(fonster,v_fonster,t_fonster);
</script>

<!-- SLUT PÅ FÖNSTRET -->

<!-- SCROLLGREJER  -->

<div id=upp style="position:absolute"> <img src="upp.gif" width="11" height="8"> 
</div>

<div id=ner style="position:absolute"> <img src="ner.gif" width="11" height="8">
</div>

<script>
v_upp=Math.round((bredd+246)/2);
t_upp=Math.round((hojd-163)/2);

v_ner=Math.round((bredd+246)/2);
t_ner=Math.round((hojd+120)/2);

flyttaLager(upp,v_upp,t_upp);

flyttaLager(ner,v_ner,t_ner);

</script>

<!-- SLUT PÅ SCROLLGREJER -->

</body>
</html>
```

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

## #8 — Jojoxx, 2001-11-06T21:32Z

*flyttaLager(fonster,v_fonster,t_fonster);*

Här måste du sätta "fonster" inom citat-tecken. Annars blir det ett variabelnamn. (och motsvarande på de andra ställena).

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

## #9 — eas, 2001-11-06T21:41Z

Oppps

Tänkte inte på det

när man anropar en funktion typ.

```
function dolj(id){
id.style.display="";
}
```

Så behöver man ju inte det!

Iallafall tack det djupast för din hjälp, du är underbar :)

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

## #10 — Jojoxx, 2001-11-06T21:44Z

Det är då för att **id** då ses som ett objekt istället för en variabel. Lite småkrångligt :)

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

## #11 — eas, 2001-11-06T22:03Z

Nu är det natti natti för min del!

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/18444-varför-funkat-det-inte
