Mozilla/ Netscape und JavaScript

Dieses Thema im Forum "Programmieren" wurde erstellt von it-praktikant, 2. September 2003.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. it-praktikant

    it-praktikant Megabyte

    Registriert seit:
    5. August 2002
    Beiträge:
    1.176
    Hallo,

    ich habe mal wieder ein Problem mit meinem Mozilla und JavaScript, leider komme ich seit gestern Abend kein deut weiter.

    Ich habe eine Webseite (ein Popup), dass von JavaScript generiert wird, weil ich da einige dynamische Sachen drin haben will.
    Der Aufruf erfolgt über einen Link, der so aussieht:
    <a href="javascript: menuPage(page-url);">hier klicken</a>

    Das Blöde ist, dass der IE die Seite wunderbar anzeigt und auch gar nicht meckert, ihm also keine Fehler auffallen. Mozilla macht da erst gar nicht mit und zeigt mir gerade mal den Hintergrund in der Tabelle an, sonst 'will' er die Seite weiter laden, kommt jedoch nicht zum Schluss und zeigt sonst auch nichts mehr an.

    Der Code für alle functions, die daran beteiligt sind:
    Code:
    function menuPage(URL) {
          document.write("<!doctype html public \"-//W3C//DTD HTML 4.01 //EN\"><html><head>");
          document.write("<title>JavaScript-generated page</title>");
          document.write("<script src=\"../all/javascript.js\" type=\"text/javascript\"></script>");
          document.write("<link rel=\"stylesheet\" href=\"../all/format.css\" type=\"text/css\">");
          document.write("</head><body bgcolor=\"#FFFFFF\">");
          document.write("<table border=\"0\" width=\"860\" cellspacing=\"0\" cellpadding=\"0\"><tr>");
          document.write("<td background=\"../pic/backgr4.png\" height=\"100\" align=\"center\">");
          printBanner();
          document.write("</td></tr><tr><td>");
          document.write("<iframe src="+URL+" width=\"100%\" height=\"575\" frameborder=\"0\"></iframe> ");
          document.write("</td></tr></table>");
          document.write("</body></html>");
    }
    
    function printBanner() {
       document.write("<table width=\"100%\" cellspacing=\"0\" cellpadding=\"3\" border=\"0\">");
       document.write("<tr><td width=\"20%\" valign=\"top\" align=\"right\">");
       document.write(browserOptBookmark());
       document.write("</td><td align=\"center\">");
       document.write("<img src=\"../pic/banner2.jpg\" width=\"468\" height=\"60\" border=\"0\" alt=\"\">");
       document.write("</td><td width=\"20%\">");
       document.write("</td></tr><tr><td colspan=\"3\" align=\"center\">");
       downNavi();
       document.write("</td></tr></table> ");
    }
    
    function downNavi() {
      document.write("<p class=\"quick\"><a class=\"quick\" href=\"javascript: history.back(1);\">zurück</a> | ");
      document.write("<a class=\"quick\" href=\"javascript: history.forward();\">vor</a> | ");
      document.write("<a class=\"quick\" href=\"javascript: location.reload();\">aktualisieren</a> | ");
      document.write("<a class=\"quick\" href=\"javascript: popup(' ', 'Impressum');\">Impressum</a></p>");
    }
    
    die Funktion browserOptBookmark() fragt nur ab, welcher Browser benutzt wird und gibt dann mit return ein Bookmark-Link zurück.

    Hat jemand vielleicht eine Idee, warum das schon wieder im IE funktioniert und im Mozi nicht?

    Ciao it.

    PS: JavaScript ist bei mir zusammengeschrieben, aber irgendwie trennt das Forum das hier. Habe versucht, es durch mehrfaches editieren wegzubekommen, geht aber nicht.
     
  2. it-praktikant

    it-praktikant Megabyte

    Registriert seit:
    5. August 2002
    Beiträge:
    1.176
    Also ich würde das nicht machen, wenn ich nicht schon alles, was mir so einfällt und ich im Internet finden konnte, gemacht hätte, aber könnte ich dir das Zeuges mal per Mail rüberschicken.

    Die gesamte Site ist komprimiert 480 kBytes (.rar) groß.

    Kannst mir ja ne PN schicken.

    Ciao it
     
  3. it-praktikant

    it-praktikant Megabyte

    Registriert seit:
    5. August 2002
    Beiträge:
    1.176
    Neeeneee, document.write(browserOptBookmark()) ist schon OK, da alles in einer JS-Datei, und in dieser Methode geht auch alles glatt, da ich diese auch einzeln ansteuere, es tritt eben nur bei Mozilla 1.4 auf, wenn ich die Methode menuPage(url) aufrufe. browserOptBookmark()^hat nähmlich den HTML-Code dann in einem return, also return(<tag>...</tag>);.

    Die JS-Konsole sagt mir, dass der Fehler im Aufruf der printBanner() Methode leigt. Diese Methode wird von jeder meiner HTML-Seite aufgerufen udn verursacht nirgends Fehler.
    Der IE kommt mit der Methode menuPage() auch wunderbar klar und zeigt mir alles wie gewollt an. Es ist nur der Mozi mit dieser einen Methode.

    Ich habe jetzt auch schon einiges in der menuPage() versucht. Aber nichts half.

    Grrrr.

    Ciao it.
     
  4. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.472
    document.write(browserOptBookmark())

    ...der sieht unlogisch aus. Entweder:

    browserOptBookmark();

    oder:

    document.write ("<script>browserOptBookmark();<\/script>");
     
  5. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.472
    Du musst alle "Steuerzeichen" maskieren, dazu zählt auch ein "/". Was sagt die JavaScript-Konsole dazu?
     
  6. it-praktikant

    it-praktikant Megabyte

    Registriert seit:
    5. August 2002
    Beiträge:
    1.176
    Hallo,

    also am Slash liegt es nicht, da ich einige Funktionen auch einzeln aufrufe und da funktioniert es. Ich glaube, du hast das eben mit dem Backslash verwechselt, wenn man den 'haben' will, dann muss man ihn mit zwei Backslashes 'wirksam' machen. Der einfache Slash geht aber, glaube ich, weil er in JavaScript kein Steuerzeichen ist. (siehe \n oder \r).
    Die JavaScript-Konsole sagt, 'printBanner is not defined'. Aber ich habe die Funktion doch da und sie stehen sogar in der Reihenfolge in der JS-Datei:

    function downNavi() {...}
    function browserOptBookmark() {...}
    function printBanner() {...}
    function menuPage(URL) {...}

    also ich kann mir wirklich nicht vorstellen, wo der Fehler sein könnte. Es kann ja nur noch in menuPage() oder downNavi() sein, da browserOptBookmark() & printBanner() schon vorher benutzt wurden, auch einzeln.

    Danke für die Antwort.

    Ciao it.
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen