marco: Script funktioniert unter Netcape nicht ????

Hi ich hab hier ein Script, mit dem ein JavaScriptmenü erzeugt wird mit dem
Internet Explorer funktioniert es einwandfrei
nur mit Netscape nicht.

menu.js:

-------------------------------------------------------------------------------------
<!--
var start='inhalt.htm';
var url_aktuell="/aktuell/aktuell.html";
var url_2003="/KALENDERWOCHEN_2003.HTML"
var url_2004="/KALENDERWOCHEN_2004.HTML"

var bstatus=0;
var menu0str="<head><script language='JavaScript' src='menu.js'></script>"+
"<style typ='text/css'><!-- a {text-decoration: none;} //--></style>"+
"</head><BODY background='back1.jpg' text=white link=white alink=white vlink=white>"+
"<table><tr><td><img src='a_D2_rot_27.gif'></td></tr></table><br><BR>";

var menu1str="<TABLE border=0 style='font-size:12pt'><TR><TD><IMG SRC='ordner.gif'>"+
"<TD><A HREF='javascript:schreib(1)'><b>Aalen</b></A><BR>";

var endestr="</TABLE></Body></HTML>";

function schreib(x){
if (bstatus==x || bstatus==x+"01")

bstatus=0;
else {
bstatus=x;
}

var mmenu=menu(bstatus);
document.open();
document.write(mmenu);
document.close();
}

function menu(offen){

switch(offen){

case 1:
menu=menu0str+menu1str+
"<TR><TD><TD><A HREF='sqi/aalen"+url_aktuell+"' target='inhalt'> -- Aktuell</A><BR>"+
"<TR><TD><TD><A HREF='javascript:schreib(101)'> -- Archiv</A><BR>"+
endestr;
break;

case 102:
menu=menu0str+menu1str+
"<TR><TD><TD><A HREF='sqi/aalen"+url_aktuell+"' target='inhalt'> -- Aktuell</A><BR>"+
"<TR><TD><TD><A HREF='javascript:schreib(101)'> -- Archiv</A><BR>"+
endestr;
break;

case 101:
menu=menu0str+menu1str+
"<TR><TD><TD><A HREF='sqi/aalen"+url_aktuell+"' target='inhalt'> -- Aktuell</A><BR>"+
"<TR><TD><TD><A HREF='javascript:schreib(102)'> -- Archiv</A><BR>"+
"<TR><TD><TD><A HREF='sqi/aalen"+url_2003+"' target='inhalt'>     -- 2003</A><BR>"+
"<TR><TD><TD><A HREF='sqi/aalen"+url_2004+"' target='inhalt'>     -- 2004</A><BR>"+
endestr;
break;

case 0:
menu=menu0str+menu1str
break;

default:
menu=menu0str+menu1str
break;

};
return menu;
}
//-->
-----------------------------------------------------------------------------------------------

menu.html:

-----------------------------------------------------------------------------------------------

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>

<script language="JavaScript" src="menu.js"></script>
<SCRIPT LANGUAGE=JavaScript>
<!--
schreib(0);
// -->
</SCRIPT>

</HTML>

-------------------------------------------------------------------------------------------------

Wird ein Link angeklick, so wird die funktion schreib(...) ausgeführt, diese prüft, ob der
gleiche Link zum weiten mal angeklickt wurde (aufklappen des Menüs/zuklappen des Menüs).
danach wird das Ergebnis der Funktion menu() in die datei menu.html geschrieben.

Die Funktion menu() ermitelt mit Hilfe von switch() je nach übergebener Zahl einen anderen Text,
der der Variablen [menu] zugeordnet wird. Dieser Text (HTML-Code) wird dann in die Datei menu.html
gschrieben, somit sollte sich beim klicken auf einen Link das menu aufklappen.

Tuts aber nicht :-( unter Internet Explorer funktioniert es einwandfrei unter Netscape nicht,
wenn ich "javascript:" oben eingebe wird der Fehler "schreib is not defined" angezeigt.

Ich hab schon versuch "/"  durch "/" zu verstecken, hat aber keinen unterschied gemacht.

Sieht vielleicht jemand den Fehler?????????????????????????????

  1. Hi ich hab hier ein Script, mit dem ein JavaScriptmenü erzeugt wird mit dem
    Internet Explorer funktioniert es einwandfrei
    nur mit Netscape nicht.

    funktioniert nicht, ist keine Fehlerbeschreibing http://glasgoogle.de
    Was für ein Nestcape?

    var start='inhalt.htm';
    var url_aktuell="/aktuell/aktuell.html";
    var url_2003="/KALENDERWOCHEN_2003.HTML"
    var url_2004="/KALENDERWOCHEN_2004.HTML"

    Grossschreibung bei URL solltest du vermeiden, da viele Server Linux System sind und dort dies eine Role spielt im gegensatz zu Windows systemen. Was zu Problemen führen kann.

    var bstatus=0;
    var menu0str="<head><script language='JavaScript' src='menu.js'></script>"+
    "<style typ='text/css'><!-- a {text-decoration: none;} //--></style>"+
    "</head><BODY background='back1.jpg' text=white link=white alink=white vlink=white>"+
    "<table><tr><td><img src='a_D2_rot_27.gif'></td></tr></table><br><BR>";

    var menu1str="<TABLE border=0 style='font-size:12pt'><TR><TD><IMG SRC='ordner.gif'>"+
    "<TD><A HREF='javascript:schreib(1)'><b>Aalen</b></A><BR>";

    Dein Ansatz ist extrem Fehler- und Absturzanfällig, du willst das Dokuemnt neu beschreiben. Da machen auch neuere Browser irgendwann schlapp. Im Netscape 4 wirst du damit auf jeden Fall früher oder später einen Absturz erzeugen.
    Du solltest mit Layern arbeiten und diese mit visible/show und hide sichtbar/unsichtbar machen.

    Außerdem ist 'pt' keine Einheit für den Monitor. Dazu findest du aber eine ganze Menge im Archiv.

    function schreib(x){
    if (bstatus==x || bstatus==x+"01")

    bstatus=0;
    else {
    bstatus=x;
    }

    Eine heikle Sache du veruschst aus einer Zahl einen string zu machen ich bin jetzt nicht sicher, aber es kann gut sein, dass der Browser aus "1" + "01" 2 macht.

    var mmenu=menu(bstatus);
    document.open();
    document.write(mmenu);
    document.close();
    }

    menu.html:

    Falls diese in einem anderen Frame sitzt dürfte hier der von dir beschriebene Fehler auftreten, da die Funktion menu in einem anderen window ist.

    <script language="JavaScript" src="menu.js"></script>

    Da fehlt das type Attribut.

    Alles in allem versteh ich den Aufwand sowieso nicht. Einfach ein paar HTML Seiten gebastelt und du könntest dir das alles sparen mit dem Vorteil, dass alle deine Seite angucken können, da es funktioniert, weniger Arbeit für dich ist und deine Besucher das vorfinden, was im Internet üblich ist - ein Klick -> eine neue seite.

    Aber offensichtlich sind dynamische Menüs ein Hype den man mitmachen muss. Sinnvoll sind sie aber nicht.

    Struppi.

    1. funktioniert nicht, ist keine Fehlerbeschreibing http://glasgoogle.de

      • stimmt ist eine Tatsache, das Problem ist ja im Text beschrieben

      Was für ein Nestcape?

      -  Netscape 4.7

      Grossschreibung bei URL solltest du vermeiden, da viele Server Linux System sind und dort dies eine Role spielt im gegensatz zu Windows systemen. Was zu Problemen führen kann.

      • Das ist in dem Fall unwichtig, da die seite nur im Netzwerk unter windows benutz wird

      Dein Ansatz ist extrem Fehler- und Absturzanfällig, du willst das Dokuemnt neu beschreiben. Da machen auch neuere Browser irgendwann schlapp. Im Netscape 4 wirst du damit auf jeden Fall früher oder später einen Absturz erzeugen.
      Du solltest mit Layern arbeiten und diese mit visible/show und hide sichtbar/unsichtbar machen.
      Außerdem ist 'pt' keine Einheit für den Monitor. Dazu findest du aber eine ganze Menge im Archiv.

      • wird wohl so sein, sollte aber trotzdem gehen, wozu gibt es den sonst die document.write() Funktion

      Eine heikle Sache du veruschst aus einer Zahl einen string zu machen ich bin jetzt nicht sicher, aber es kann gut sein, dass der Browser aus "1" + "01" 2 macht.

      • tut trozdem nicht, außerdem funktioniert es zumindest unter Internet Explorer

      Falls diese in einem anderen Frame sitzt dürfte hier der von dir beschriebene Fehler auftreten, da die Funktion menu in einem anderen window ist.

      die funktion menu() steht in der datei menu.js die aufgerufen wird.

      <script language="JavaScript" src="menu.js"></script>

      Da fehlt das type Attribut.

      jaja ich weiß, dass ist aber nicht der fehler

      Alles in allem versteh ich den Aufwand sowieso nicht. Einfach ein paar HTML Seiten gebastelt und du könntest dir das alles sparen mit dem Vorteil, dass alle deine Seite angucken können, da es funktioniert, weniger Arbeit für dich ist und deine Besucher das vorfinden, was im Internet üblich ist - ein Klick -> eine neue seite.

      Aber offensichtlich sind dynamische Menüs ein Hype den man mitmachen muss. Sinnvoll sind sie aber nicht.

      mit Hype hat das nichts zu tun, es sind 30 menü punkte mit jeweils zwei Untermenüs weitere folgen vielleicht noch!!!
      die alle zu erstellen geht zwar, ist aber nicht besonders elegant gelöst

      Struppi.

      geholfen ist mir NOCH NICHT trotzdem Dank

      1. Was für ein Nestcape?
        -  Netscape 4.7

        Was wichtig ist.

        Grossschreibung bei URL solltest du vermeiden, da viele Server Linux System sind und dort dies eine Role spielt im gegensatz zu Windows systemen. Was zu Problemen führen kann.

        • Das ist in dem Fall unwichtig, da die seite nur im Netzwerk unter windows benutz wird

        Dein Ansatz ist extrem Fehler- und Absturzanfällig, du willst das Dokuemnt neu beschreiben. Da machen auch neuere Browser irgendwann schlapp. Im Netscape 4 wirst du damit auf jeden Fall früher oder später einen Absturz erzeugen.
        Du solltest mit Layern arbeiten und diese mit visible/show und hide sichtbar/unsichtbar machen.
        Außerdem ist 'pt' keine Einheit für den Monitor. Dazu findest du aber eine ganze Menge im Archiv.

        • wird wohl so sein, sollte aber trotzdem gehen, wozu gibt es den sonst die document.write() Funktion

        um einmal ein Dokument zu überschreiben. wie gesagt du wirst mit deiner Variante, so sie denn jemanls funktioniert, im NC 4.x Abstürze provozieren.

        es ist wesentlich einfacher und eleganter, Layer mit HTML zu gestalten und dies dann sichtbar und unsichtbar zu machen, als jedesmal das Dokument neu zu schreiben.

        Eine heikle Sache du veruschst aus einer Zahl einen string zu machen ich bin jetzt nicht sicher, aber es kann gut sein, dass der Browser aus "1" + "01" 2 macht.

        • tut trozdem nicht, außerdem funktioniert es zumindest unter Internet Explorer

        Das war als Hinweis gedacht, das du mit fragwürdigen Workarounds arbeitest, wobei es ohne Probleme anders ginge.

        Falls diese in einem anderen Frame sitzt dürfte hier der von dir beschriebene Fehler auftreten, da die Funktion menu in einem anderen window ist.

        die funktion menu() steht in der datei menu.js die aufgerufen wird.

        Das heißt sie soll dynamisch eingebunden werden. Das führt immer wieder zu Problemen. Vielleicht solltest du grundsätzlich probieren, ob die Funktion überhaupt vorhanden ist (alert(typeof menu))

        <script language="JavaScript" src="menu.js"></script>

        Da fehlt das type Attribut.

        jaja ich weiß, dass ist aber nicht der fehler

        Es ist aber ein Fehler.

        mit Hype hat das nichts zu tun, es sind 30 menü punkte mit jeweils zwei Untermenüs weitere folgen vielleicht noch!!!
        die alle zu erstellen geht zwar, ist aber nicht besonders elegant gelöst

        Naja, so wie es jetzt aussieht ist es auch nicht elegant, darüber hinaus fehleranfällig und du bringst den Browser (NC 4) zum absturz und hast einen riesenaufwand. Eine HTML Seite zu erstellen dürfte einfacher sein, zumal mit Templates (z.b. DW) dies in sekundenschnelle angepasst ist.

        So wie das Skript jetzt ist, müßte es komplett umgearbeitet werden, sinnvoller wäre der Einsatz eines Framesets wo das Skript statisch bleibt und nur die Inhaltseite geändert wird, das ist eine Lösung die halbwegs funktioniert.

        Struppi.

        1. So wie das Skript jetzt ist, müßte es komplett umgearbeitet werden, sinnvoller wäre der Einsatz eines Framesets wo das Skript statisch bleibt und nur die Inhaltseite geändert wird, das ist eine Lösung die halbwegs funktioniert.

          Struppi.

          • so war es vorher mal, das hab ich aber umgebau, da ich gedacht hab, dass es vielleicht daran liegt.
              hat aber auch nicht funktioniert.

          wird mir wohl nix anders übrich bleiben, als für jeden Menüpunkt eine extra seite zu schreiben, hab eh schon damit angefangen, vielleicht probier ich es auch mal mit Layern

          wenn jemand trotzdem den fehler findet oder das script umschreiben möcht bitte posten Dank

        2. Hab ich eigentlich schon erwähnt wie scheiße ich Netscape finde??

          alles funktioniert bis Ntscape ins spiel kommt!!!

          außderdem läd es stunden lang bevor es sich öffnet!!!

          das musste ich mal los werden :-)

          1. alles funktioniert bis Ntscape ins spiel kommt!!!

            Naja, du nimmst halt kaum Rücksicht auf einen Browser der schon einige Jahre auf den Buckel hat. Du erwartest ja auch nicht von eine VW Käfer das er einen Porsche überholt, trotzdem halten ihn viele für ein Auto.
            Wenn du auf deiner Autobahn nur Porsches willst dann mach das halt so.

            außderdem läd es stunden lang bevor es sich öffnet!!!

            jaja, das kenn ich, evtl. liegt's am CSS. Wie gesagt deine Variante mit document.write() ist auch nicht sonderlich förderlich um NC 4.x zu unterstützen.

            das musste ich mal los werden :-)

            ham hier schon viele gemacht, das kennen wir schon ;-)

            Du darfst aber nicht vergessen, das du von einem alten Programm redest, nicht von Netscpae 7.x. Falls du mal versucht hast für den IE 4.x zu programmieren oder gar IE 3. würde dein Urteil nicht mehr so einseitig ausfallen.

            Das ist halt das Internet, du musst auch auf die langsamen warten.

            Struppi.

  2. Hallo,

    Hi ich hab hier ein Script, mit dem ein JavaScriptmenü erzeugt wird mit dem
    Internet Explorer funktioniert es einwandfrei
    nur mit Netscape nicht.

    also bei mir ist das Ergebnis mit IE 6 auch nicht überzeugend, und mit NC4 erhalte ich den erwähnten JavaScript-Fehler nicht, obwohl NC4 das Script wie auch IE 6 bei der neuen Seite wieder einbindet.

    Wie wärs mal mit ner URI, und welchen Netscape 4 nimmst du?

    Grüsse

    Cyx23

    1. »» Hi ich hab hier ein Script, mit dem ein JavaScriptmenü erzeugt wird mit dem
       »» Internet Explorer funktioniert es einwandfrei
       »» nur mit Netscape nicht.

      also bei mir ist das Ergebnis mit IE 6 auch nicht überzeugend, und mit NC4 erhalte ich den erwähnten JavaScript-Fehler nicht, obwohl NC4 das Script wie auch IE 6 bei der neuen Seite wieder einbindet.

      • Also mit Internet explorer 5.5 funktioniert es so wie es soll.
          und mit dem browser von Ulli Meybohm auch.

      welchen Netscape 4 nimmst du?

      Version 4.7

      1. Hallo,

        also bei mir ist das Ergebnis mit IE 6 auch nicht überzeugend, und mit NC4 erhalte ich den erwähnten JavaScript-Fehler nicht, obwohl NC4 das Script wie auch IE 6 bei der neuen Seite wieder einbindet.

        • Also mit Internet explorer 5.5 funktioniert es so wie es soll.
            und mit dem browser von Ulli Meybohm auch.

        welchen Netscape 4 nimmst du?

        Version 4.7

        der 4.70 dürfte die Seite tatsächlich etwas anders aufbauen als der von
        mir genommene 4.80, kann ich später nochmal testen.
        Aber erstmal war meine Frage auch so gemeint ob der von dir gepostete
        Code stimmt oder womöglich zusehr verkürzt oder beim Posten
        verändert ist.

        Grüsse

        Cyx23