document.write oder innerHTML
Brigitte
- javascript
Kann mir jemand sagen, was besser ist um Inhalte Dynamisch in Divtags zuschreiben document.write oder innerHTML? Beides geht bei mir aber teilweise werden Inhalte doppelt geschieben??
Hier zwei Varianten:
function newsTable(){
var tabcontent = "<table id='new' class='text'><tr><td>Message</td><td>Status</td><td>Related</td><td>From</td><td>sent</td></tr>";
for(var i=0; i< tab.length; i++){
tabcontent += "<tr>";
for (var u=0; u< tab[i].length; u++){
tabcontent += "<td>"+tab[i][u]+"</td>";
}
tabcontent += "</tr>";
}
tabcontent += "</table>";
writeDivContent('newsDiv', tabcontent);
}
function newsTable(){
document.write("<table border='0' class='text' cellspacing='0' cellpadding='0'><tr class='ueber'><td class='colnews1'>Message</td><td class='colnews2'>Status</td><td class='colnews3'>Related to</td><td class='colnews4'>From</td><td class='colnews5'>sent</td></tr>");
for(var i=0; i< tab.length; i++){
document.write("<table border='0' class='text' cellspacing='0' cellpadding='0'><tr class='zeilenHoehe'><td class='colnews1'><a href='#' class='news'>" +tab[i][0]+ "</a></td><td class='colnews2'><a href='#' class='news'>" +tab[i][1]+ "</a></td><td class='colnews3'><a href='#' class='news'>" +tab[i][2]+ "</a></td ><td class='colnews4'><a href='#' class='news'>" +tab[i][3]+ "</a></td><td class='colnews5'><a href='#' class='news'>" +tab[i][4]+ "</a></td>");
document.write("</table></tr>");
}
document.write("</table>");
}
schon mal Danke
Brigitte
hi,
um ein div neu zu beschreiben verwendest Du fuer IE und Mozilla 'innerHTML' (oder DOM-Techniken), fuer NC4x 'document.open();document.write("string");document.close();'
document.write alleine verwendest Du um beim _Rendern_ des Dokumentes Elemente dynamisch reinzuschreiben. Zu einem spaeteren Zeitpunkt wird vorhandenes HTML _ueberschrieben_.
Gruesse Joachim
hi,
um ein div neu zu beschreiben verwendest Du fuer IE und Mozilla 'innerHTML' (oder DOM-Techniken), fuer NC4x 'document.open();document.write("string");document.close();'
document.write alleine verwendest Du um beim _Rendern_ des Dokumentes Elemente dynamisch reinzuschreiben. Zu einem spaeteren Zeitpunkt wird vorhandenes HTML _ueberschrieben_.
Gruesse Joachim
Hallo Joachim,
erts mal danke, aber ich hab mit InnerHTML Probleme bei Mozilla, da er mir die Inhalte zweimal reinschreibt im IE nicht?
Wie ist das mit Document write, wird da die ganze Seite überschieben, oder nur das DIv, in dem ich die Funktion zur Laufzeit aufrufe? So sieht das nähmlich bei mir aus und würde somit klappen.
Ist wichtig ,da auf der Seite ständig irgentwelche DIvs auf onclick beschieben werden. Vielleicht weißt Du ja noch was davon
Grüße Brigitte
hi,
erts mal danke, aber ich hab mit InnerHTML Probleme bei Mozilla, da er mir die Inhalte zweimal reinschreibt im IE nicht?
normalerweise macht er das nicht, Du musst irgendeinen Fehler drinne haben. Mach Dir mal eine simple Testversion und versuche:
document.getElementById("DIVID").innerHTML = "String";
Du kannst es auch mal mit Dom (IE > 5, Mozilla) versuchen:
<html><head>
<style type="text/css">
#ebene0 {position:absolute;top:100px;left:100px;width:100px;height:100px;layer-background-color:red;background-color:red;border:none;visibility:visible;}
</style>
<script language="javascript1.2">
var newTxt = false;
function doText(txt)
{
if(newTxt) document.getElementById('ebene0').removeChild(newTxt);
newTxt = document.createTextNode(txt);
document.getElementById('ebene0').appendChild(newTxt);
}
</script>
</head><body>
<a href="#" onclick="doText('hallo'); return false;">link1</a><br>
<a href="#" onclick="doText('wie isses'); return false;">link2</a>
<div id="ebene0"></div>
</body></html>
Wie ist das mit Document write, wird da die ganze Seite überschieben, oder nur das DIv, in dem ich die Funktion zur Laufzeit aufrufe?
document.write ueberschreibt das dokument - was beim NC4x kein Problem ist, da layer ein eigenes document darstellt.
Gruesse Joachim