webForumDet fria alternativet

document.layers

4 svar · 270 visningar · startad av nordan

nordanMedlem sedan juni 2000929 inlägg
#1

document.layers[lagerId] has no properties.

får jag när jag kör mitt script i Netscape 4.7 men jag kan inte hitta vad jag har gjort för fel, någon som vet?
Det funkar i IE och NN 6
Jag har lagt ut den kod som körs när felet uppstår :l

function makelagers()
{
	var antallager = 2;
	var i = 0;
	var menylager = new Array();
	
	for(i; i<bilar.length; i++)
	{
		document.write("<div id=\"menylager"+i+"\" style=\"position:absolute; top: 60px;\" onMouseOut=\"hideLayer('menylager"+i+"')\"; ><a href=\"#\">"+bilar[i]+"</a></div>");
		var lager = "menylager"+i;
		var leftlagerbredd = "menylager"+(i-1);
                                hideLayer(lager);
	}	
	

}
function hideLayer(lagerId)
{
	if (document.all) 
	{
		document.all[lagerId].style.visibility = "hidden";
	} 
	else if (document.layers)
	{
		document.layers[lagerId].visibility = "hide";
	} 
	else if (document.getElementById)
	{
		document.getElementById(lagerId).style.visibility = "hidden";
	}	
}
JojoxxMedlem sedan juni 20004 306 inlägg
#2

Kan vara så att document.write() buffras och inte skrivs ut på en gång (utan att ha testat). Men du kan ju gömma det på en gång i style-attributet;

function makelagers()
{
	var antallager = 2;
	var i = 0;
	var menylager = new Array();
	
	for(i; i<bilar.length; i++)
	{
document.write("<div id=\"menylager"+i+"\" style=\"position:absolute; top: 60px; visibility:hidden;\" onMouseOut=\"hideLayer('menylager"+i+"')\"; ><a href=\"#\">"+bilar[i]+"</a></div>");
		// var leftlagerbredd = "menylager"+(i-1); // Denna använder du inte...?
	}	
	

}
nordanMedlem sedan juni 2000929 inlägg
#3

Kanske blir enklare om jag lägger ut hela scriptet
här där det http://hem.passagen.se/load/passagen.htm
Jojoxx >> jag fick det tyvärr inte att funka med du föreslog.

JojoxxMedlem sedan juni 20004 306 inlägg
#4

Glömde bort att Netscape 4 inte tycker om style-attributet när du skapar lager dynamiskt med document.write(). Tog en stund innan jag kom på det första gången ;)

Bifogar en zip med modifierad kod. Du kommer dock att märka att onMouseout inte funkar på <div> i Netscape 4. Där kan du ex lägga det i länken istället.

nordanMedlem sedan juni 2000929 inlägg
#5

Tack för hjälpen :birp

Genererad på 499 ms · cache AV · v20260730165559-full.f96bc7eb