---
title: "mer problem med layers"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/17972-mer-problem-med-layers"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "OveRRidE"
published: "2001-07-09T13:27:00.000Z"
updated: "2001-07-12T07:14:00.000Z"
replies: 16
views: 212
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/17972-mer-problem-med-layers"
---

# mer problem med layers

## #1 — OveRRidE, 2001-07-09T13:27Z

Här får ni nåt o bita i :)

Funkar inte i Netscape, när man klickar på vissa av länkarna (det finns fler) så kommer de inte upp. Den första kommera lltid upp dock.. :(

Länken:

```
<a href="#" onMouseUp="show('layer1');"><img src="gfx/h_tjanster.gif" border="0"></a>
<a href="#" onMouseUp="show('layer2');"><img src="gfx/h_kontakt.gif" border="0"></a>
<a href="#" onMouseUp="show('layer3');"><img src="gfx/h_case.gif" border="0"></a>
```

Scriptsidan: (script.js)

```
	var isNav, isIE
	var coll = ""
	var styleObj = ""

	if (parseInt(navigator.appVersion) >= 4)
	{
		if (navigator.appName == "Netscape") {
			isNav = true
		} else {
			isIE = true
			coll = "all."
			styleObj = ".style"
		}
	}
	
	// Convert an objectname to a object reference
	function getObject(obj) {
		var theObj		
		if (typeof obj == "string")	 {			
			theObj = eval("document." + coll + obj + styleObj)
		} else {
			theObj = obj
		}
		return theObj
	}
	
	// Put an object on a specific co-ordinate
	function shiftTo(obj, x, y) {	
		var theObj = getObject(obj)		
		if (isNav) {
			theObj.moveTo(x, y)			
		} else{
			theObj.pixelLeft = x
			theObj.pixelTop = y
		}
	}
	
	// Set Z-order for object
	function setZIndex(obj, zOrder) {
		var theObj = getObject(obj)
		theObj.zIndex = zOrder
	}
	
	// Show object
	function show(obj) {	
		var theObj = getObject(obj)
		hideAll()
		theObj.visibility = "visible"
	}
	
	// Hide object
	function hide(obj) {
		var theObj = getObject(obj)
		theObj.visibility = "hidden"
	}
	
	function hideAll()
	{
		if (isObject('layer1')){ hide('layer1'); }
		if (isObject('layer2')){ hide('layer2'); }
		if (isObject('layer3')){ hide('layer3'); }
		if (isObject('layer4')){ hide('layer4'); }
		if (isObject('layer5')){ hide('layer5'); }
		if (isObject('layer6')){ hide('layer6'); }
		if (isObject('layer7')){ hide('layer7'); }
		
	}
	//-->
	
	function isObject(obj){
	if (document.all) {
	if(document.all[obj]){ return true; }
	} else if (document.layers){
	if(document.layers[obj]){ return true; }
	} else if (document.getElementById){
	if(document.getElementById(obj)){ return true; }
	}
	}
```

DIV-taggen: (givetvis finns det fler, 1 till 7..)

```
<div id="layer1" style="position:absolute;left:12px;top:105px;visibility:hidden;z-index:10">

innehåll

</div>
```

hjälp?

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

## #2 — Jojoxx, 2001-07-09T15:24Z

Trodde du höll på själv att fixa det till cross-browser-kod eftersom du inte sa något förra gången. Jag stuvade om lite om du inte misstycker. Detta borde fungera bättre;

```
// Convert an objectname to a object reference
function getObject(obj) {
	if (document.all){
		return document.all[obj];
	} else if (document.layers){
		return document.layers[obj];
	} else if (document.getElementById){
		return document.getElementById(obj);
	}
}

// Put an object on a specific co-ordinate
function shiftTo(obj, x, y) { 
	var theObj = getObject(obj) 
	if (document.all){
		theObj.style.left = x;
		theObj.style.top = y;
	} else if (document.layers){
		theObj.left = x;
		theObj.top = y;
	} else if (document.getElementById){
		theObj.style.left = x+'px';
		theObj.style.top = y+'px';
	}
}

// Set Z-order for object
function setZIndex(obj, zOrder) {
	var theObj = getObject(obj)
	if (document.all) {
		theObj.style.zIndex = zOrder;
	} else if (document.layers){
		theObj.zIndex = zOrder;
	} else if (document.getElementById){
		theObj.style.zIndex = zOrder;
	}
}

// Show object
function show(obj) { 
	var theObj = getObject(obj)
	hideAll()
	if (document.all) {
		theObj.style.visibility = "visible";
	} else if (document.layers){
		theObj.visibility = "show";
	} else if (document.getElementById){
		theObj.style.visibility = "visible";
	}
}

// Hide object
function hide(obj) {
	var theObj = getObject(obj)
	if (document.all) {
		theObj.style.visibility = "hidden";
	} else if (document.layers){
		theObj.visibility = "hide";
	} else if (document.getElementById){
		theObj.style.visibility = "hidden";
	}
}

function hideAll()
{
if (isObject('layer1')){ hide('layer1'); }
if (isObject('layer2')){ hide('layer2'); }
if (isObject('layer3')){ hide('layer3'); }
if (isObject('layer4')){ hide('layer4'); }
if (isObject('layer5')){ hide('layer5'); }
if (isObject('layer6')){ hide('layer6'); }
if (isObject('layer7')){ hide('layer7'); }

}
//-->

function isObject(obj){
if (document.all) {
if(document.all[obj]){ return true; }
} else if (document.layers){
if(document.layers[obj]){ return true; }
} else if (document.getElementById){
if(document.getElementById(obj)){ return true; }
}
}
```

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

## #3 — OveRRidE, 2001-07-09T17:42Z

Tack!

Jag kommer inte kunna testa det förräns imorgon bitti, jag återkommer då :)

/s

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

## #4 — OveRRidE, 2001-07-09T21:21Z

Nej nu funkar det nog, skall testa lite till, jag gjorde fel först..

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

## #5 — OveRRidE, 2001-07-10T11:01Z

Tyvärr det gör ingen skillnad.. Netscape 4.08 vill inte visa fler layers än layer1. Det spelar ingen roll om jag klickar på den först eller sist, det är BARA den som kommer fram vid onMouseUp-funken...

nytt försök Jojoxx? :)

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

## #6 — Jojoxx, 2001-07-10T14:44Z

Ett litet tips att börja med; När du försöker visa ett lager och inget händer. Ställ dig i adress-raden och skriv "JavaScript:" \[enter\] så får du se vilka e.v. felmeddelanden som genereras.

Troligen är det ett stavfel någonstanns. Eller så genereras det ett fel av någon annan kodsnutt som du inte har med här. Jag har testat under 4.08, och det fungerar som fisken.

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

## #7 — OveRRidE, 2001-07-11T11:25Z

Jag förstår inte vad du menar med "javascrip"-grejen..?
 skall jag ta bort allt annat och skriva dit det? Skall dubbel-fnuttarna vara kvar? Varför ett kolon? Och din \[Enter\] antar jag betyder enter-slag..

i vilket fall som helst så skrev jag bara javascript: i addressraden och det hände ingenting.

/s

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

## #8 — Jojoxx, 2001-07-11T11:43Z

Alltså (i netscape), i adress-fältet där det normalt står "http://osv." Skriver du bara in "javascript:" (utan citat-tecken) och trycker på Enter. Ett nytt fönster kommer att öppnas där e.v. felmeddelanden från körda script kommer att visas.

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

## #9 — OveRRidE, 2001-07-11T11:48Z

Aha!

Felmess: 

```
JavaScript Error: [url="http://jenny:83/js/script.js,"]http://jenny:83/js/script.js,[/url]  line 45:

theObj has no properties.
```

Rad 45:

```
theObj.visibility = "show";
```

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

## #10 — OveRRidE, 2001-07-11T13:58Z

Hjääälp!

\*storgråta\*

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

## #11 — Jojoxx, 2001-07-11T14:29Z

Kan vara så enkelt att du har stavat fel i lagernamnet som du anropar functionen med. Annars, har du en länk till sidan är det lite enklare att kolla.

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

## #12 — OveRRidE, 2001-07-11T14:35Z

felstavning tror jag inte att det är, jag har lusläst dokumentet och gjort om både länkar o hela köret fler gånger, samma resultat. 

/s

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

## #13 — Jojoxx, 2001-07-11T15:16Z

Felet beror inte på scriptet utan på den bristande html-koden. [W3C's validator-resultat](http://validator.w3.org/check?uri=http%3A%2F%2F212.181.125.69%2Fcostumer%2Fjsc%2Fdefault.asp&doctype=Inline). Provar du att rensa lagren så ser du att det fungerar (I.E. ta bort allt mellan \<div...\> och \</div\> och skriv "kakburk" där)

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

## #14 — OveRRidE, 2001-07-11T17:52Z

Ok, jag kollade på valideringen.. Det verkade vara ganska mycket fel :)

jaja jag får testa det då :)

men reagerar Netscape alltid så med sånt innehåll i \<div\> taggar eller? Jag vet ju att den är ganska tjurig när det gäller fel i koden, men så hård.. ? 

Tack iaf. :)

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

## #15 — Jojoxx, 2001-07-11T18:01Z

Netscape **är** väldigt strikt (tjurig), medans å andra sidan IE är väldigt förlåtande. Netscape kan ex. totalt strunta i att visa en tabell om den inte är rätt avslutad eller innehåller andra fel, vilket kan få till följd att hela sidor blir "osynliga" eftersom hela sidan ligger i en tabell. div här är ett annat exempel. Var noga med att avsluta element som kräver det. Försök även att låta bli att lägga block-element innanför inline-element. Sånna småsaker ;)

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

## #16 — OveRRidE, 2001-07-12T06:13Z

> Försök även att låta bli att lägga block-element innanför inline-element.

.. block element och inline-element... min ordlista snappade inte riktigt innebörde av de två orden.. :) Vad innebär det?

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

## #17 — Jojoxx, 2001-07-12T07:14Z

Läs igenom [denna tråd](http://cgi.webforum.nu/wf/Forum1/HTML/000747.html) så har du förklaringen.

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/17972-mer-problem-med-layers
