Freakie: Layer-Definition für DOM, IE und NS4.x

Halloho.
Für (m)eine SchulHP muss das Design der Seite noch zu NS4.x kompatibel sein (so der AG-Leiter). Da ich mich bei der Gestaltung eines DHTML-Skriptes bedient habe, dass auf allen 3 großen Standarts läuft, möchte ich dies auch umsetzten. Ich habe jedoch ein Problem. Da ich die URL zu der Seite verlegt habe, wo ich das Menu her hatte (welches auch auf NS4.x lieg), weiss ich nun nicht mehr wie eine Layer definiert sein muss, um in ALLEN drei Browsern zu laufen. Hier der aktuelle Syntax, welche leider nicht unter NS4.x läuft:

<div id="flyout1" style="z-index:3; visibility: hidden;">
  <table>
  <tr>
  <td>test</td>
  </tr>
  </table>
</div>

Achja, wenn ich das ganze per <layer>-tag mache, funzt es unter NS4 und dafür unter den anderen Browsern nicht. Ich weiss, dass es auch mit einem einheitlichen Tag für alle Browser geht. Ich weiss nur nicht, wie. Ich hoffe, Sie können mir helfen.

mfg Freakie

  1. Hallo Freakie,

    Achja, wenn ich das ganze per <layer>-tag mache, funzt es unter NS4 und dafür unter den anderen Browsern nicht. Ich weiss, dass es auch mit einem einheitlichen Tag für alle Browser geht. Ich weiss nur nicht, wie. Ich hoffe, Sie können mir helfen.

    Ich kann zwar nicht wirklich Javascript oder DHTML, aber ich könnte mir vorstellen, dass du am Anfang des Dokumentes eine Browserweiche einbaust, und dann den Inhalt dynamisch mit document.write('...') aufbaust. Also so etwas wie:

    Wenn NS4, dann schreibe '<layer ...>', wenn nicht, dann '<div ...>'

    Du musst dir aber im Klaren sein, dass dann der User gezwungen ist, Javascript eingeschaltet zu haben, sonst kriegt er im schlimmsten Fall eine leere Seite zu sehen. Das sollte man sich IMHO übrigens prinzipiell vor der Verwendung von Javascript bzw DHTML überlegen...

    Grüße aus Darmstadt,
    Benjamin

    1. Wenn NS4, dann schreibe '<layer ...>', wenn nicht, dann '<div ...>'

      Schonmal danke für deine Antwort. Das Problem bei document.write ist zum einen, dass man die gesamte Seite dann dort einfügen muss, da bei document.write der alte Inhalt ja gelöscht wird. Zum anderen kann man Netscape 4.x AFAIK nur durch die Versionsnummer von neuen Versionen unterscheiden und da es da extrem viele Versionsnummern von 4.xer-NScapes gibt, ist eine Unterscheidung auch dann kaum möglich.

      Das die Seite dann nur mit Javascript navigierbar ist, ist mir schon bewusst. Jedoch wird es vermutlich noch eine Seite geben, die auf die aktuelle "trockene" Seite verlinkt. Diese ist grafisch jedoch so öde (ne Start-Linkseite in weiss mit nen paarLinks etc.), dass es schöner ist, wenn man das ganze anders schafft. Zumindest wurde die Verwendung eines DHTML-Menüs in der Schul-AG beschlossen und nu muss ich das auch machen ^^.

      1. Hallo,

        da bei document.write der alte Inhalt ja gelöscht wird.

        AFAIK aber nur, wenn dieses document.write innerhalb des <head></head> steht. Da bin ich mir aber nicht so sicher, kann mich auch täuschen.

        Zum anderen kann man Netscape 4.x AFAIK nur durch die Versionsnummer von neuen Versionen unterscheiden und da es da extrem viele Versionsnummern von 4.xer-NScapes gibt, ist eine Unterscheidung auch dann kaum möglich.

        Man soll doch eine Browserweiche nicht nach dem Browserstring machen, sondern nach den Fähigkeiten eines Browsers (dazu wirst du wirklich _viel_ im </archiv/> finden). Den Netscape 4 (in allen Versionen) zu identifizieren ist beispielsweise ein Kinderspiel:

        if (document.layers)
         {
         ...
         }

        Zumindest wurde die Verwendung eines DHTML-Menüs in der Schul-AG beschlossen und nu muss ich das auch machen ^^.

        Mein Beileid... ;-)

        Grüße aus Darmstadt,
        Benjamin

    2. hi,

      Wenn NS4, dann schreibe '<layer ...>', wenn nicht, dann '<div ...>'

      wozu das? Ein _positioniertes_ div wird im NC4x ebenfalls zum Layerobjekt. Das Layertag ist ueberfluessig und stirbt sowieso aus.

      Mehr in der hiesigen Css-Doku.

      Gruesse  Joachim

      1. hi,

        Wenn NS4, dann schreibe '<layer ...>', wenn nicht, dann '<div ...>'

        wozu das? Ein _positioniertes_ div wird im NC4x ebenfalls zum Layerobjekt. Das Layertag ist ueberfluessig und stirbt sowieso aus.

        Mehr in der hiesigen Css-Doku.

        Gruesse  Joachim

        Juhu, Danke! Ich weiss nich wiesos jetzt funzt (hatte das voher schonmal ausprobiert - war wohl schlampig gecodet oder so ^^) aber es klappt nu halt!

        Zum anderen kann man Netscape 4.x AFAIK nur durch die Versionsnummer von neuen Versionen unterscheiden und da es da extrem viele Versionsnummern von 4.xer-NScapes gibt, ist eine Unterscheidung auch dann kaum möglich.

        Man soll doch eine Browserweiche nicht nach dem Browserstring machen, sondern nach den Fähigkeiten eines Browsers (dazu wirst du wirklich _viel_ im /archiv/ finden). Den Netscape 4 (in allen Versionen) zu identifizieren ist beispielsweise ein Kinderspiel:

        if (document.layers)
         {
         ...
         }

        Thx ^^. Gut zu wissen =).

        Mein Beileid... ;-)

        Naja, mich störts nich wirklich da ich eigentlich nix gegen DHTML habe... ^^