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/
9 svar · 302 visningar · startad av Erik Juhlin
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/
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]
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/
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
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/
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
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
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/
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
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/