webForumDet fria alternativet

document.all

2 svar · 203 visningar · startad av nordan

nordanMedlem sedan juni 2000929 inlägg
#1

Hej!
Om jag kolla vilken typ av sånt här document.all eller vad det nu skall vara. Med denna kod:

if(document.all)
{
	block = "document.all";
}
else if(document.layers)
{
    block = "document.layers";
}
else if(document.getElementById)
{
    block = "document.getElementById";
}

Där ger jag ju block ett värde
Det jag vill göra nu är att använda block till denna kod :

function make_lager()
{
for(i; i<bilar.length; i++)
	{
		document.write("<div id=\"menylager"+i+"\"><a href=\"#\">"+bilar[i]+"</a></div>");
		var lager = "menylager"+i;
		var leftlagerbredd = "menylager"+(i-1);
		
		if(lager == "menylager0")
		{
		     [B]document.all[/B][lager].style.pixelLeft =100;
		}
		else
		{
	                      leftplacering = [B]document.all[/B][leftlagerbredd].offsetWidth+[B]document.all[/B][leftlagerbredd].offsetLeft;
			[B]document.all[/B][lager].style.pixelLeft = leftplacering;
		}

}

Hur gör jag då för att använda block istället för att jag skall använda mig av document.all Jag har markerat några ställen i koden där jag till exempel skulle vilja byta ut koden till block men ha resten kvar. Jag kanske tänker fel? Ni kanske har nått bättre tipz om hur jag kan göra koden mera dynamisk :q
Hoppas någon förstår frågan :l

JojoxxMedlem sedan juni 20004 306 inlägg
#2

Du börjar tänka som en programmerare :) Men tyvärr är det inte riktigt så enkelt. För att positionera ett lager med gammal Netscape-DOM använder du document.layers["lagerId"].left medans med w3c-DOM blir det document.getElementById("lagerId").style.left Dessutom har inte alla egenskaper samma namn. Enklast är att skriva ett eget crossbrowser-bibliotek med de funktioner som du vill kunna använda, eller ta ett som någon har börjat på :)

nordanMedlem sedan juni 2000929 inlägg
#3

Tack för hjälpen :D Nu har jag kommit en bra bit på väg mot mitt mål men menyerna :D

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