webForumDet fria alternativet

Hjälp med ett script ??

2 svar · 146 visningar · startad av AndreasC

AndreasCMedlem sedan mars 20011 964 inlägg
#1

Har ett script som ändrar till en text när man klickar på en länk. Texten ligger i ett fixerat lager och den byts ut när man klickar på en länk. Själva texten som ska visas anger man således i länken mha onclick=""

Scriptet för detta och som jag behöver hjälp med ser ut så här:

<script type="text/javascript" language="JavaScript">
var Id = "desctunics";
function describetunics(string){
if(document.layers){
with (document[Id].document){
open();
write(string);
close();
}
} else if (document.all){
document.all[Id].innerHTML = string;
} else if (document.getElementById){
jxdocrange = document.createRange();
jxdocrange.setStartBefore(document.getElementById(Id));
while (document.getElementById(Id).hasChildNodes()){
document.getElementById(Id).removeChild(document.getElementById(Id).lastChild);
document.getElementById(Id).appendChild(jxdocrange.createContextualFragment(string));
}
}
}
</script>

Jag vill gärna ange flera id för scriptet. Förutom Id = "desctunics" så vill jag ha ytterligare id'n. Jag har testat att lägga till ytterligare en funktion i scriptet som ser lika dan ut som den första fast jag har då naturligtvis modifierat den lite. Jag har också ändrat id till class. Eftersom jag inte är så haj på javascript så har jag naturligtvis gjort något fel. Hur gör jag?

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Tycker jag känner igen det där scriptet ;). En rad har dock smugits sig upp på fel ställe. Så gär kan det se ut;

<script language="JavaScript">
function describe(Id,string){
	if(document.layers){
		with (document[Id].document){
			open();
			write(string);
			close();
		}
	} else if (document.all){
		document.all[Id].innerHTML = string;
	} else if (document.getElementById){
		jxdocrange = document.createRange();
		jxdocrange.setStartBefore(document.getElementById(Id));
		while (document.getElementById(Id).hasChildNodes()){
			document.getElementById(Id).removeChild(document.getElementById(Id).lastChild);
		}
		document.getElementById(Id).appendChild(jxdocrange.createContextualFragment(string));
	}
}
</script>

Så kan du skapa ett par lager med;
<div id="foo" style="position:absolute;top:50px;left:50px;"></div>
<div id="bar" style="position:absolute;top:150px;left:50px;"></div>

som du sedan kan ändra med;

onClick="describe('foo','Detta står i foo'); describe('bar','Detta står i bar');"

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

AndreasCMedlem sedan mars 20011 964 inlägg
#3

Jo, det är ditt script :) Men då förstår jag bättre hur det ska va. Tackar för det.

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