Björn: Unterschied im Layer-Modell von Netscape 4 zu 6

Hi,
leider habe ich noch nicht so viel Programmiererfahrung und habe deshalb mal eine Frage.

Ich habe eine Webseite in mit Hilfe von Javascript und DHTML eine Menü erzeugt wird. Unter Netscape 4.x funktioniert alles so wie es soll. Leider aber nicht unter Netscape 6 und weiteren Versionen. Ich weiß, dass beim Übergang von 4.X zu 6.X das Layer-Modell verworfen wurde und das DOM-Modell eingebaut. Kann mir jemand mal bezogen auf die Elemente <DIV> und <SPAN> erklären, wo genau der Unterschied liegt.

Danke für Eure Hilfe. Björn

  1. Hallo Björn,

    poste mal nen Code, dann kann man Dir bestimmt weiterhelfen.

    Grüsse, Robin

    --
    Dass Du nicht paranoid bist, heisst nicht, dass sie auch nicht hinter Dir her sind...
    1. Hallo Björn,

      poste mal nen Code, dann kann man Dir bestimmt weiterhelfen.

      Grüsse, Robin

      Hi Robin,
      leider ist es sehr viel Code und so viel darf ich hier nicht posten. Werde ihn heute nachmittag mal abspecken und dann abends schicken. Danke. Björn

  2. Hallo Björn,

    Ich weiß, dass beim Übergang von 4.X zu 6.X das Layer-Modell verworfen wurde und das DOM-Modell eingebaut. Kann mir jemand mal bezogen auf die Elemente <DIV> und <SPAN> erklären, wo genau der Unterschied liegt.

    Unter Netscape 4 definierst Du einen Layer so:

    <div id="layername" style="position: absolute; ...">
    Inhalt
    </div>

    Du kannst dann per JavaScript auf die einzelnen Layer zugreifen:

    document.layers['layername'].irgendwas

    Jeder Layer ist sozusagen ein eigenes Dokument, d.h. Du kannst z.B. per

    document.layers['layername'].document.open();
    document.layers['layername'].document.write('wasweißich');
    document.layers['layername'].document.close();

    den Inhalt ersetzen. Auf verschachtelte Layer greifst Du über

    document.layers['ebene1'].document.layers['ebene2']....

    Das DOM-Modell dagegen sieht die dynamische Modifikation jeglichen HTML-Inhalts vor. Du kannst praktisch beliebig "Knoten" hinzufügen, ändern und löschen. Du kannst einem beliebigen Element auf einer Seite eine ID geben, z.B. so

    <div id="alpha"></div>

    aber auch alle anderen Elemente als <div> sind möglich:

    <p>Hallo, dies ist ein <b id="test">Test</b>.</p>

    Du kannst jetzt auf das o.g. div über

    document.getElementById("alpha")....

    zugreifen, auf das b über

    document.getElementById("test")

    Jeder Knoten besitzt diverse Eigenschaften. Microsoft hat eine Eigenschaft innerHTML eingeführt, die einfaches Ersetzen vom kompletten HTML-Inhalt erlaubt. Diese wird inzwischen vom IE, Mozilla, Konqueror und Opera ab Version 7 unterstützt und wird vom W3C mehr oder weniger toleriert.

    Du kannst also den Inhalt des divs durch

    inhalt = document.getElementById("alpha").innerHTML;

    auslesen und per

    document.getElementById("alpha").innerHTML = 'Halli <i>Hallo</i>';

    ändern. Gleiches gilt auch für das b-Element weiter oben, Du kannst den Inhalt praktisch dynamsich ersetzen.

    Die verschiedenen Stileigenschaften der Objekte kannst Du über das style-Unterobjekt verändern, z.B.

    document.getElementById("test").style.backgroundColor = 'red';

    Grüße,

    Christian

    Näheres in SELFHTML unter: http://selfhtml.teamone.de/dhtml/modelle/dom.htm

    --
    Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.