"Denn!s H" <@> writes:
> Dav
>
> Jeg kalder en JavaScript funktion og sender en tekststreng med som
> parameter.
> Denne tekststreng vil jeg gerne have vist i en div (tekstfelt) på siden.
> Hvad kan jeg skrive funktionen for at få en tekst i div feltet?
Det afhænger af hvilke browsere det skal virke i. Der er ingen måde
at skrive til en div, der virker i alle browsere. Nogle browsere kan
slet ikke ændre indholdet af en side efter den er loadet. Andre kan
kun gøre det på underlige måder (her tænker jeg på Netscape 4)
Du kan tjekke FAQ'en for comp.lang.javascript:
<URL:
http://jibbering.com/faq/#FAQ4_15>
Jeg er dog ganske utilfreds med den måde funktionen er skrevet på,
så her er min egen version til at skrive *tekst* i et div-element:
---
<script type="text/javascript">
function getElement(id) {
var elem;
if (document.getElementById) { // W3C DOM
return document.getElementById(id);
} else if (document.all) { // IE 4
return document.all[id];
} else if (document.layers) { // NS 4
return document.layers[id];
}
}
function dynWrite(id,text) {
var elem = getElement(id);
if (!elem) {return;} // element findes ikke.
if (document.TextNode && elem.appendChild) {
while (elem.hasChildNodes()) { // slet gammelt indhold
elem.removeChild(elem.lastChild);
}
elem.appendChild(document.createTextNode(text));
} else if (elem.innerHTML) { // ej-DOM, men innerHTML
elem.innerHTML = text;
} else if (elem.document != document) { // Netscape 4
elem.document.open();
elem.document.write("<div>"+text+"<\/div>");
elem.document.close();
}
}
</script>
<div id="foo" style="position:absolute;width:100%;">
tekstfelt
</div>
<form action=""><input type="button" onclick="dynWrite('foo','ny tekst');" value="KLIK MIG!"></form>
---
Hvis det er vigtigt at det virker i Netscape 4, så husk at sætte
style="position:absolute;width:100;" på div'en. Det gør den til et
"layer" i Netscape 4, som så kan tilgås gennem document.layers, og kan
have sit indhold skiftet. Nogen gange er position:absolute ikke det
man helst vil bruge, da div'en så ikke fylder noget på siden. Så
kan man bruge position:relative, men det ser ud til at Netscape 4
så placerer indholdet forkert.
Suk. Netscape 4 er noget gammelt lort der crasher for et godt ord.
Det er vist mest for fuldstændigheden at jeg har den med her.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'