Georg Lange: NN4 verliert CSS-Formatierungen beim Ändern von Ebeneninhalten

Hallo versammelte Webworker!

Ich habe folgendes Problem:
wenn ich den Inhalt einer Ebene dynamisch austausche (ähnlich wie in SELFHTML beschrieben: http://selfhtml.teamone.de/dhtml/modelle/netscape.htm#austauschen ) werden CSS-Formatierungen im Netscape 4.78 nur bei der letzten Schreibaktion interpretiert sofern der Tausch in mehreren Ebenen nacheinander stattfindet.

Die Inhalte, die ausgetauscht werden (nur Text) sind in einem Array abgelegt

/*-----snip--------------------*/

texte[0]='<span style="font-family:verdana,sans-serif;font-size:10px;color:#ff00ff">Das ist ein Testtext</span>';
texte[1]='<span style="font-family:verdana,sans-serif;font-size:11px;color:#ffff00">ein Testtext</span>';

/*-----snap--------------------*/

Die Funktion, die die Texte austauscht sieht so aus:

/*-----snip--------------------*/

function layerWrite(id,text)
{
 if (ns4)
 {
  var lyr = document.layers[id].document
  lyr.open();
  lyr.clear();
  lyr.write(text);
  lyr.close();
 }
 if (ie4) document.all[id].innerHTML = text;
 if (nn6) document.getElementById(id).innerHTML = text;
}

/*-----snap--------------------*/

Wenn diese Funktion mehrfach hintereinander mit verschiedenen Parametern aufgerufen wird, so wird nur die Stilvereinbarung der letzten Schreibaktion dargestellt.

(siehe auch vollständiges Beispiel: http://www.polynomic.de/eingang/format_test1.html

Wenn sich blaue und rote Ebene treffen werden in allen Ebenen die Texte ausgetauscht.

Warum ist das so? Warum kann er im einen Fall die Stilvereinbarungen darstellen, im anderen nicht? Es hätte mich ja nicht wirklich gewundert, wenn es gar nicht funktioniert hätte - aber so... Was ist der Unterschied und weiss jemand Abhilfe?

TIA

Grüsse Georg

  1. hi,

    vergiss nicht das NC4x aus einer Zeit stammt, wo Css erst aufkam. Bei solchen Problemen hilft es oft, style-Angaben fuer ein Span zu definieren, und diesen Span ebenfalls dynamisch in den Layer zu schreiben.
    Statt:
    with (obj.document) {open();write(txt);close();}
    also:
    with (obj.document) {open();write("<span class='lala'>"+txt+"</span>");close();}

    viel Erfolg  Joachim

    1. hi,

      style-Angaben fuer ein Span zu definieren, und diesen Span ebenfalls dynamisch in den Layer zu schreiben.

      Statt:
      with (obj.document) {open();write(txt);close();}
      also:
      with (obj.document) {open();write("<span class='lala'>"+txt+"</span>");close();}

      danke, aber das ist doch _genau_ das was ich tue: die Style-Angaben stehen im <span>. Mal werden sie interpretiert (letzte Schreibaktion), mal nicht. :-(

      georg