Thomas Häber: Netscape 4.x und der dynamische Layer.

Hi,

Könntet ihr euch den Script mal ankkucken und mir sagen warum im Netscape 4.x dieser Layer (bzw. Div-Layer) nicht angezeigt wird.
Es könnt evt. an: <div align="center" id="Navdiv"></div>
<layer align="center" id="Navdiv"></layer> liegen, wenn ich jedoch name="..." schreibe wird ebenfalls nichts angezeigt.
Ich habe alle Befehle nachgeschlagen und es müssten alle ab Netscape 4 funktionieren (Bis auf die die extra für andere Browser deklariert wurden).

Der Code:

<html><head>
<title>Menu-Auswertung</title>
<script language="JavaScript" type="text/javascript">
<!--
function MenuAuswertung() {

<!-- Sucht nach Ausgangspfad -->
  var URLInhalt = location.href;

if (window.location.host == true) {
  var Ab_Menu = window.location.pathname;
  }
  else {
  var hq1 = URLInhalt.indexOf("haeber_de/");
  var Ab_Menu = URLInhalt.substring(hq1,999);
  }
<!-- Teilt den relativen Pfad -->
  ArrayVariable = Ab_Menu.split("/");

<!-- Gibt die Anzahl+2 der Pfade mit Link an -->
  hz = "1";
  while (unescape(ArrayVariable[hz]) != "undefined") {
  hz++;
  }

hz2 = hz-2;

<!-- Gibt die Eigenschaften der Links an -->
  Adresse = "";
  Verweise = "";
  hq = "1";
  var Vorverweis = "";
  var Zusatz = "<span style='color:#000000;'> - </span>";
  var Verweis1 = "<a id='Navigation' name='Navigation' style='color:#000000;font-family:Arial,Verdana;font-size:16px;text-decoration:none;' href='";
  var Verweis2 = "'></a>";
  var Punkt = "../";
  var Indexlink = "index.html";

<!-- Standartfunktion für das dynamische Einfügen -->
  function Dlayer(xx,yy) {
  if (document.getElementById) document.getElementById(xx).innerHTML = yy;
  else if (document.all) document.all.xx.innerHTML = yy;
  else if (document.layer) {
  document.xx.document.open();
  document.xx.document.write(yy);
  document.xx.document.close();
  }
  }

<!-- Schleife für das Zusammenfügen der Linkvariablen und dem Strich -->
  while (unescape(ArrayVariable[hq]) != "undefined") {
  if (hz2 == 0) Adresse = "javascript:location.reload();";
  else {
  Punkt2 = "";
  for (pp = 2; pp <= hz2; pp++) {Punkt2 = Punkt2.concat(Punkt);}
  Adresse = Punkt2.concat(Indexlink);
  hz2--;
  }

Vorverweis  = Verweis1.concat(Adresse);
  Verweis = Vorverweis.concat(Verweis2);
  if (hq == "1") Verweise = Verweise.concat(Verweis);
  else Verweise = Verweise.concat(Zusatz + Verweis);
  Neues = Verweise;

<!-- Aufruf der Standartfunktion fürs dynam. Einfügen -->
  Dlayer("Navdiv",Neues);
  hq++;
  Vorverweis = "";
  Neues = "";
  }

<!-- Standartfunktion fürs Tauschen der Pfade korrekte Wörter -->
  function T1(tausch1,tausch2) {
  if (x == tausch1) x = tausch2;
  }

i = "0";
  hp = "1";
  while (unescape(ArrayVariable[hp]) != "undefined") {
  s = unescape(ArrayVariable[hp]);
  x = s;

T1("forum","Forum");
  T1("info","Information");
  T1("extras","Extras");
  T1("menu","Menu");
  T1("gaestebuch","Gästebuch");
  T1("spiele","Spiele");

T1("haeber","Haeber Community");
  T1("preview","Preview");
  T1("action","Action");
  T1("denken","Denken-Logik");
  T1("fun","Fun");
  T1("strategie","Strategie");
  T1("gimmicks","Gimmicks");
  T1("links","Links");

if (x.match(".htm")  == ".htm") x = document.title;

<!-- Das dynmaische Einfügen der einzelnen Links -->
  //if (document.getElementById) document.getElementById("Navigation").innerHTML = x;
  if (document.all) document.all.Navigation[i].innerHTML = x;
  else if (document.layer) {
  document.Navigation[i].document.open();
  document.Navigation[i].document.write(x);
  document.Navigation[i].document.close();
  }

i++;
  hp++;
  }
}
//-->
</script></head>
<body onLoad="MenuAuswertung();return true;" text="#000000" link="#000000" vlink="#000000" alink="#000000">

<div align="center" id="Navdiv"></div>
<layer align="center" id="Navdiv"></layer>

</body></html>

Der Script wird auch auf der angegeben Adresse (URL) zum Test verwendet.

Bis nachher.

  1. Sup!

    Schachtele div und layer

    <div id="bla"><layer name="bla2"></layer></div>

    und schreibe mit Netscape in den layer bla2 und mit dem Rest in das div bla - 2 Elemente mit gleichem Namen/gleicher ID finden die Browser evtl. nicht ganz so lustig.

    Ich denke mal, es liegt daran.

    Gruesse,

    Bio

    1. Ich habe den Code so geändert das es keine Doppeltbelegungen geben kann. Trotzdem hat Netscape 4 keinen Spaß dran und gibt weder einen Error noch den Text aus. Hier noch mal den ??"verbesserten"?? Code:

      <html><head>
      <title>Menu-Auswertung</title>
      <script language="JavaScript" type="text/javascript">
      <!--
      function MenuAuswertung() {

      <!-- Sucht nach Ausgangspfad -->
        var URLInhalt = location.href;

      if (window.location.host == true) {
        var Ab_Menu = window.location.pathname;
        }
        else {
        var hq1 = URLInhalt.indexOf("haeber_de/");
        var Ab_Menu = URLInhalt.substring(hq1,999);
        }
      <!-- Teilt den relativen Pfad -->
        ArrayVariable = Ab_Menu.split("/");

      <!-- Gibt die Anzahl+2 der Pfade mit Link an -->
        hz = "1";
        while (unescape(ArrayVariable[hz]) != "undefined") {
        hz++;
        }

      hz2 = hz-2;

      <!-- Gibt die Eigenschaften der Links an -->
        Adresse = "";
        Verweise = "";
        hq = "1";
        var Vorverweis = "";
        var Zusatz = "<span style='color:#000000;'> - </span>";
        if (document.layer) Verweis1 = "<a name='Navigation2' style='color:#000000;font-family:Arial,Verdana;font-size:16px;text-decoration:none;' href='";
        else  Verweis1 = "<a id='Navigation' style='color:#000000;font-family:Arial,Verdana;font-size:16px;text-decoration:none;' href='";
        var Verweis2 = "'></a>";
        var Punkt = "../";
        var Indexlink = "index.html";

      <!-- Standartfunktion für das dynamische Einfügen -->
        function Dlayer(xx,yy) {
        if (document.getElementById) document.getElementById(xx).innerHTML = yy;
        else if (document.all) document.all.xx.innerHTML = yy;
        else if (document.layer) {
        document.xx.document.open();
        document.xx.document.write(yy);
        document.xx.document.close();
        }
        }

      <!-- Schleife für das Zusammenfügen der Linkvariablen und dem Strich -->
        while (unescape(ArrayVariable[hq]) != "undefined") {
        if (hz2 == 0) Adresse = "javascript:location.reload();";
        else {
        Punkt2 = "";
        for (pp = 2; pp <= hz2; pp++) {Punkt2 = Punkt2.concat(Punkt);}
        Adresse = Punkt2.concat(Indexlink);
        hz2--;
        }

      Vorverweis  = Verweis1.concat(Adresse);
        Verweis = Vorverweis.concat(Verweis2);
        if (hq == "1") Verweise = Verweise.concat(Verweis);
        else Verweise = Verweise.concat(Zusatz + Verweis);
        Neues = Verweise;

      <!-- Aufruf der Standartfunktion fürs dynam. Einfügen -->
        if (document.layer) Dlayer("Navdiv2",Neues);
        else Dlayer("Navdiv",Neues);
        hq++;
        Vorverweis = "";
        Neues = "";
        }

      <!-- Standartfunktion fürs Tauschen der Pfade zu korrekte Wörter -->
        function T1(tausch1,tausch2) {
        if (x == tausch1) x = tausch2;
        }

      i = "0";
        hp = "1";
        while (unescape(ArrayVariable[hp]) != "undefined") {
        s = unescape(ArrayVariable[hp]);
        x = s;

      T1("forum","Forum");
        T1("info","Information");
        T1("extras","Extras");
        T1("menu","Menu");
        T1("gaestebuch","Gästebuch");
        T1("spiele","Spiele");

      T1("haeber","Haeber Community");
        T1("preview","Preview");
        T1("action","Action");
        T1("denken","Denken-Logik");
        T1("fun","Fun");
        T1("strategie","Strategie");
        T1("gimmicks","Gimmicks");
        T1("links","Links");

      if (x.match(".htm")  == ".htm") x = document.title;

      <!-- Das dynmaische Einfügen der einzelnen Links -->
        //if (document.getElementById) document.getElementById("Navigation").innerHTML = x;
        if (document.all) document.all.Navigation[i].innerHTML = x;
        else if (document.layer) {
        document.Navigation2[i].document.open();
        document.Navigation2[i].document.write(x);
        document.Navigation2[i].document.close();
        }

      i++;
        hp++;
        }
      }
      //-->
      </script></head>
      <body onLoad="MenuAuswertung();return true;" text="#000000" link="#000000" vlink="#000000" alink="#000000">

      <div align="center" id="Navdiv"><layer align="center" name="Navdiv2"></layer></div>

      </body></html>

      1. Morgen

        (document.layer) ...

        ^^^

        Da is die sau ... "s" vergessen, durch's gesamte Script hindurch. Das Objekt für Netscape heißt document.layers, nicht document.layer. Deswegen geht's auch nicht, weil Netscape das Objekt document.layer abfragt und relativ schnell feststellt, daß er das nicht kennt und deswegen die if-Bedingung nicht ausführt.

        Cya,

        Harry