Antje Hofmann: innerHTML-Irritation beim NS6

Beitrag lesen

Hallo Cräcker,

kaum zu glauben, aber ich habe meine Seite versucht, NS6 fest zu machen. (Soweit klapts jetzt auch....): Dabei stieß ich auf ein Problem, bei dem ich gerne zu meiner Erbauung wissen möchte, ob der NS6 her berchtigte Mucken gemacht hat oder er einfach "sinnlos" stur war.

Ich habe im Body ein Div mit der id "stempel". Ich lese (im Bsp. jetzt) den Inhalt des Divs per innerHTML aus und "verlängere" diesen Inhalt durch ein weiteres Div. Dieses Div-im-Div schreibe ich wieder per innerHTML in das Div Stempel. Vulgo: ich füge also von mal zu mal dynamisch ins oben genannte Div stempel weitere Divs ein. Soweit so gut.

Ach ja, und wo ich gerade dabei bin: Ich schreibe natürlich keine leeren divs da rein, sondern in den Divs liegen wiederum Bilder. Bei meinem NS6.01 löscht er alle bisher dynamisch geschriebenen Images vor dem neu-rendern des zusätzlich eingefügten images. Das Ergebnis ist ein "lustiges" flackern. Ist das eine Eigenart, die alle weiteren versionen (inklusive Mozillas) auch haben? (Wäre dem Dhtml sicherlich etwas abträglich).....

Diese Sturheit betrifft nur deine Version (Mozilla nicht getestet), in der 6.1 tritt das Problem nicht mehr auf.
Allerdings als ich das Posting gelesen habe, fand ich, dass es hier eigentlich sehr sehr viel sinnvoller ist, mit dem Elementebaum zu arbeiten. Also habe ich mal etwas gespielt und raus kam das:

x=50;
function test() {
 //Achtung funktioniert erst ab NN Version 6
  //Element neuen Div erzeugen
  var neuDiv=document.createElement("div");

//Styleattribut erzeugen und Wert zuweisen
  var neuDivStyle=document.createAttribute("style");
  neuDivStyle.nodeValue ="position:absolute;top:"+x+"px";

//Attribut id erzeugen und Wert zuweisen
  var neuDivId=document.createAttribute("id");
  neuDivId.nodeValue ="test"+x;

//Attribute anhaengen
  neuDiv.setAttributeNode(neuDivStyle);
  neuDiv.setAttributeNode(neuDivId);

//Element Bild erzeugen
  var Bild=document.createElement("img");

//Attribut src erzeugen und Wert zuweisen
  var BildSrc=document.createAttribute("src");
  BildSrc.nodeValue ="stempel.gif";

//Attribut width erzeugen und Wert zuweisen
  var BildWeite=document.createAttribute("width");
  BildWeite.nodeValue ="10px";

//Attribut height erzeugen und Wert zuweisen
  var BildHoehe=document.createAttribute("height");
  BildHoehe.nodeValue ="10px";

//Attribute anhaengen
  Bild.setAttributeNode(BildSrc);
  Bild.setAttributeNode(BildWeite);
  Bild.setAttributeNode(BildHoehe);

//Element Bild in das Element neuDiv einhaengen
  neuDiv.appendChild(Bild);

//Element neuDiv in das Element stempel einhaengen
   document.getElementById("stempel").appendChild(neuDiv);

var inhalt=document.getElementById("stempel").innerHTML;
x+=50;
alert(inhalt);

return
}

Lustiger Weise, fügt NN6.0 bei dieser Methode die id auch nach dem Styleattribut ein. Jetzt macht er aber alles richtig und zerhaut nichts.

Viele liebe Grüße und weiterhin fröhliches Stempeln

Antje