webForumDet fria alternativet

mer problem med layers

16 svar · 212 visningar · startad av OveRRidE

OveRRidEMedlem sedan feb. 200112 078 inlägg
#1

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?

------------------
SELECT * FROM existence WHERE sex = 'female' AND age > '18' AND age < '25' OR name = 'Sandra Bullock' ORDER BY breastsize

[Redigerat av OveRRidE den 09 jul 2001]

[Redigerat av OveRRidE den 09 jul 2001]

JojoxxMedlem sedan juni 20004 308 inlägg
#2

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; }
}
}

------------------
/ J

OveRRidEMedlem sedan feb. 200112 078 inlägg
#3

Tack!

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

/s

------------------
SELECT * FROM existence WHERE sex = 'female' AND age > '18' AND age < '25' OR name = 'Sandra Bullock' ORDER BY breastsize

OveRRidEMedlem sedan feb. 200112 078 inlägg
#4

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

------------------
SELECT * FROM existence WHERE sex = 'female' AND age > '18' AND age < '25' OR name = 'Sandra Bullock' ORDER BY breastsize

[Redigerat av OveRRidE den 09 jul 2001]

OveRRidEMedlem sedan feb. 200112 078 inlägg
#5

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? :)

------------------
SELECT * FROM existence WHERE sex = 'female' AND age > '18' AND age < '25' OR name = 'Sandra Bullock' ORDER BY breastsize

[Redigerat av OveRRidE den 10 jul 2001]

JojoxxMedlem sedan juni 20004 308 inlägg
#6

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.

------------------
/ J

OveRRidEMedlem sedan feb. 200112 078 inlägg
#7

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

------------------
SELECT * FROM existence WHERE sex = 'female' AND age > '18' AND age < '25' OR name = 'Sandra Bullock' ORDER BY breastsize

JojoxxMedlem sedan juni 20004 308 inlägg
#8

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.

------------------
/ J

OveRRidEMedlem sedan feb. 200112 078 inlägg
#9

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";

------------------
SELECT * FROM existence WHERE sex = 'female' AND age > '18' AND age < '25' OR name = 'Sandra Bullock' ORDER BY breastsize

[Redigerat av OveRRidE den 11 jul 2001]

OveRRidEMedlem sedan feb. 200112 078 inlägg
#10

Hjääälp!

*storgråta*

------------------
SELECT * FROM existence WHERE sex = 'female' AND age > '18' AND age < '25' OR name = 'Sandra Bullock' ORDER BY breastsize

[Redigerat av OveRRidE den 11 jul 2001]

JojoxxMedlem sedan juni 20004 308 inlägg
#11

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.

------------------
/ J

OveRRidEMedlem sedan feb. 200112 078 inlägg
#12

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

------------------
SELECT * FROM existence WHERE sex = 'female' AND age > '18' AND age < '25' OR name = 'Sandra Bullock' ORDER BY breastsize

JojoxxMedlem sedan juni 20004 308 inlägg
#13

Felet beror inte på scriptet utan på den bristande html-koden. W3C's validator-resultat. 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)

------------------
/ J

OveRRidEMedlem sedan feb. 200112 078 inlägg
#14

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. :)

------------------
SELECT * FROM existence WHERE sex = 'female' AND age > '18' AND age < '25' OR name = 'Sandra Bullock' ORDER BY breastsize

JojoxxMedlem sedan juni 20004 308 inlägg
#15

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 ;)

------------------
/ J

OveRRidEMedlem sedan feb. 200112 078 inlägg
#16

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?

------------------
SELECT * FROM existence WHERE sex = 'female' AND age > '18' AND age < '25' OR name = 'Sandra Bullock' ORDER BY breastsize

[Redigerat av OveRRidE den 12 jul 2001]

JojoxxMedlem sedan juni 20004 308 inlägg
#17

Läs igenom denna tråd så har du förklaringen.

------------------
/ J

136 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)