webForumDet fria alternativet

Läsa från och skriva til lager

JavaScriptur Javascript

9 svar · 302 visningar · startad av Erik Juhlin

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#1

I vilka webbläsare kan man med JavaScript läsa och skriva till lager med JavaScript?
Med lager menar jag absolut positionerade <div>-taggar.

Och hur skriver man i de olika webbläsarna?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

spangoMedlem sedan juni 20008 205 inlägg
#2

NS4, IE4+ och DOM-kompatibla läsare. Dessvärre har de extremt olika modeller för hur man gör... enligt DOM kan man inte stoppa in HTML, men det kan man däremot med den modell som finns i NS4 och IE4. Exempel:

function setLayerText(id, str){
if (document.layers){
with (document.layers[id].document){
open(); // öppna lagret för skrivaccess
write(str); // skriv strängen
close(); // stäng lagret
}
} else if (document.all)
document.all[id].innerHTML = str; // en annan variant vore att skriva innerText = str
else if (document.getElementById){
with (document){
var layer = getElementById(id);
while(layer.hasChildNodes()) layer.removeChild(layer.firstChild);
layer.appendChild(createTextNode(str));
}
}
}

------------------
You can be a coward for a few minutes, or dead forever. /Rincewind

[Redigerat av spango den 24 nov 2001]

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#3

Så det går inte att fixa i Mozilla så man kan stoppa in HTML? Då faller en grej jag håller på med. :l
Och hur gör man i Netscape 4 när man vill läsa från lagret?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Det jag antar att Spango syftar på är metoden createTextNode() och att den skapar just en text-node, men det funkar alldeles utmärkt i mozilla att stoppa in markups med den, och vad jag kan läsa mig fram till är detta meningen, att ev. markups i text-noden skall parse'as och element skapas. Källa.

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

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#5

Okej, då behöver jag bara en funktion för att läsa från lagret.

Men funkar det att läsa och skriva till lager i en annan frame?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

spangoMedlem sedan juni 20008 205 inlägg
#6

Markups som slängs in i createTextNode parsas inte, kan jag berätta...

------------------
You can be a coward for a few minutes, or dead forever. /Rincewind

JojoxxMedlem sedan juni 20004 308 inlägg
#7

Nej det stämmer, det var en annan metod jag använt. Mozilla har metoden createContextualFragment()

Prova;

	} else if (document.getElementById){
		var docrange = document.createRange();
		docrange.setStartBefore(document.getElementById(id));
		while (document.getElementById(id).hasChildNodes()){
			document.getElementById(id).removeChild(document.getElementById(id).lastChild);
		}
		document.getElementById(id).appendChild(docrange.createContextualFragment(str));
	}

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

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#8

Går det att fixa eller blir det enormt krångligt?

Funderade också på om det blir enklare om man vill läsa och skriva till en hel frame..?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

JojoxxMedlem sedan juni 20004 308 inlägg
#9

Skriva gör det ju rätt mycket enklare, om du tittar på detta exempel, men däremot har jag inget bra tips på motsvarighet till innerHTML som funkar i Netscape 4.

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

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#10

Saken är den att jag vill lägga på en sträng till det som redan finns. Jag vet inte om det går utan att kunna läsa ut vad som redan finns..?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

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