dj: Script im Script

Hallo,

folgende (stark vereinfachte) Funktion funktioniert nicht:

function nav_mus() {
linie += "<script>";
linie += "mus_por();";
linie += "</script>";
document.write(linie);
}

Wahrscheinlich wegen dem Strichpunkt nach mus_por() oder?

Wie kann ich dieses Problem umgehen?

Danke. dj

  1. Sorry! Hier noch mal das Script ohne Fehler in der zweiten Zeile! (Hat sich durchs Kürzen ergeben:)

    function nav_mus() {
    linie = "<script>";
    linie += "mus_por();";
    linie += "</script>";
    document.write(linie);
    }

    Gruß. dj

    1. Hi,

      Zuerst mal "funktioniert nicht" ist keine sehr aussagekräftige Fehlerbeschreibung.

      function nav_mus() {
      linie = "<script>";
      linie += "mus_por();";
      linie += "</script>";
      document.write(linie);
      }

      Wann rufst du die Funktion nav_mus() auf? Wenn die Seite zu diesem Zeitpunkt bereits geladen ist wird die gesamte Seite mit dem Inhalt von line überschrieben.

      Ansonsten könnte es noch sein, dass nach dem script-Tag ein Zeilenumbruch erwartet wird.

      mfG,
      steckl

      1. Hi,

        Zuerst mal "funktioniert nicht" ist keine sehr aussagekräftige Fehlerbeschreibung.

        function nav_mus() {
        linie = "<script>";
        linie += "mus_por();";
        linie += "</script>";
        document.write(linie);
        }

        Wann rufst du die Funktion nav_mus() auf? Wenn die Seite zu diesem Zeitpunkt bereits geladen ist wird die gesamte Seite mit dem Inhalt von line überschrieben.

        Ansonsten könnte es noch sein, dass nach dem script-Tag ein Zeilenumbruch erwartet wird.

        mfG,
        steckl

        Was meinst Du mit "wann"?

        Die ganze funktion schaut besher so aus:

        function nav_mus() {
        linie = "<script language=JavaScript src=/service/oav10/tliste.asp?kat=183 type=text/javascript></script>";
        linie += "<script language=JavaScript src=/service/oav10/tliste.asp?kat=187 type=text/javascript></script>";
        linie += "<script language=JavaScript src=/service/oav10/tliste.asp?kat=192 type=text/javascript></script>";
        linie += "<script language=JavaScript src=/service/oav10/tliste.asp?kat=182 type=text/javascript></script>";
        linie += "<script language=JavaScript src=/service/oav10/tliste.asp?kat=184 type=text/javascript></script>";
        linie += "<div id=masterdiv>";
        linie += "<div class=menu><a href=/service/oav10/artikel.asp?lnr=6503>Home</a></div>";
        linie += "<div class=menu onclick=SwitchMenu('sub1')><a href=#>Portrait</a></div>";
        linie += "<span class=submenu id=sub1>";
        linie += "<script>";
        linie += "mus_por()";
        linie += "<\/script>";
        linie += "<\/span>";
        document.write(linie);
        }

        Bis auf die drei Zeilen

        linie += "<script>";
        linie += "mus_por()";
        linie += "<\/script>";

        Funktioniert alles. Mit den drei Zeilen soll ein Untermenü geschrieben werden... dj

        1. Hi,

          Zuerst mal "funktioniert nicht" ist keine sehr aussagekräftige Fehlerbeschreibung.

          Hast du das nicht gelesen?

          Und noch ein Hinweis: Versuche sinnvoller zu zitieren.

          Wann rufst du die Funktion nav_mus() auf? Wenn die Seite zu diesem Zeitpunkt bereits geladen ist wird die gesamte Seite mit dem Inhalt von line überschrieben.

          Was meinst Du mit "wann"?

          Zu welchem Zeitpunkt. Wenn du sie beispielsweise mit onload im body aufrufst ist die Seite schon fertig geladen. Bei onclick eines Buttons wohl meistens auch.

          Bis auf die drei Zeilen [...] Funktioniert alles.

          Diese Fehlerbeschreibung ist immer noch nicht aussagekräftiger als vorher.
          http://forum.de.selfhtml.org/hilfe/charta.htm#tipps-fuer-fragende

          mfG,
          steckl

          1. Hi,

            Zuerst mal "funktioniert nicht" ist keine sehr aussagekräftige Fehlerbeschreibung.

            Hast du das nicht gelesen?

            Ich tue mich schwer den Fehler genauer zu beschreiben. Ich sag mal das Untermenü klappt nicht auf und der IE bringt folgenden Fehler: Objekt erwartet (Zeile 60, Zeichen: 1)

            Und noch ein Hinweis: Versuche sinnvoller zu zitieren.

            Gebe nir Mühe...

            Wann rufst du die Funktion nav_mus() auf? Wenn die Seite zu diesem Zeitpunkt bereits geladen ist wird die gesamte Seite mit dem Inhalt von line überschrieben.

            Was meinst Du mit "wann"?

            Zu welchem Zeitpunkt. Wenn du sie beispielsweise mit onload im body aufrufst ist die Seite schon fertig geladen. Bei onclick eines Buttons wohl meistens auch.

            nav_mus wird im Head aufgerufen mit <script language="JavaScript" src="/nav_mus.js" type="text/javascript"></script>

            Bis auf die drei Zeilen [...] Funktioniert alles.

            Diese Fehlerbeschreibung ist immer noch nicht aussagekräftiger als vorher.
            http://forum.de.selfhtml.org/hilfe/charta.htm#tipps-fuer-fragende

            mfG,
            steckl

            So schaut (stark gekürzt die HTM-Datei aus:

            <html>
            <head>
             <title>titel</title>

            <link rel="STYLESHEET" type="text/css" href="/ms.css">

            <script type="text/javascript">

            if (document.getElementById){
            document.write('<style type="text/css">\n')
            document.write('.submenu{display: none;}\n')
            document.write('</style>\n')
            }

            function SwitchMenu(obj){
             if(document.getElementById){
             var el = document.getElementById(obj);
             var ar = document.getElementById("masterdiv").getElementsByTagName("span");
              if(el.style.display != "block"){
               for (var i=0; i<ar.length; i++){
                if (ar[i].className=="submenu")
                ar[i].style.display = "none";
               }
               el.style.display = "block";
              }else{
               el.style.display = "none";
              }
             }
            }

            </script>

            <script language="JavaScript" src="/nav_mus.js" type="text/javascript"></script>

            </head>

            <body leftmargin=0 topmargin=0>

            <table width="100%" border="0" cellspacing="11" cellpadding="0">
            <tr>
            <td>

            <script>
            nav_mus();
            </script>

            <!--- START MENÜ --->

             <div id="masterdiv">

             <div class="menu"><a href="/service/oav10/artikel.asp?lnr=6503">Home</a></div>

             <div class="menu" onclick="SwitchMenu('sub1')"><a href="#">Portrait</a></div>

             <span class="submenu" id="sub1">
            <script>
            mus_por();
            </script>
             </span>

             <span class="submenu" id="sub2">
            <script>
            mus_akt();
            </script>
             </span>

             </div>
             <!--- ENDE MENÜ --->

            </td>
            </tr>
            </table>

            </body>
            </html>

            Die Funktionen mus_por und mus_akt sehen so aus:

            function mus_por() {
            link = " ";
            [%DATENSATZ%]
            document.write(link);
            }

            Nun soll eben das ganze Menü in die nav_mus integriert werden, damit ich es zentral verwalten kann.... dj

            1. Hi,

              Ich tue mich schwer den Fehler genauer zu beschreiben. Ich sag mal das Untermenü klappt nicht auf und der IE bringt folgenden Fehler: Objekt erwartet (Zeile 60, Zeichen: 1)

              Was steht in Zeile 60?
              Hast es mal im Firefox versucht? Der hat meist aussagekräftigere Fehlermeldungen.

              Und noch ein Hinweis: Versuche sinnvoller zu zitieren.

              Gebe nir Mühe...

              Kann noch besser werden ;)

              nav_mus wird im Head aufgerufen mit <script language="JavaScript" src="/nav_mus.js" type="text/javascript"></script>

              Nein, da wird es eingebunden.

              So schaut (stark gekürzt die HTM-Datei aus:

              <script>
              nav_mus();
              </script>

              Hier wird es aufgerufen.

              Die Funktionen mus_por und mus_akt sehen so aus:
              function mus_por() {
              link = " ";
              [%DATENSATZ%]
              document.write(link);
              }

              In welcher Datei steht diese Funktion?

              Nun soll eben das ganze Menü in die nav_mus integriert werden, damit ich es zentral verwalten kann

              Und was machst du, wenn der User JS deaktiviert hat? Bekommt er dann kein Menü?
              Es gibt auch http://forum.de.selfhtml.org/hilfe/faq.htm#quelltext-auslagernqtitle=andere Möglichkeiten Menüs zentral zu verwalten.

              mfG,
              steckl

              1. Was steht in Zeile 60?

                58: <script>
                59: nav_mus();
                60: </script>

                Somit fürchte ich fast, dass "Mathias Brodala" irgendwie Recht!? Wie könnte ich den Slash "maskieren"?

                Hast es mal im Firefox versucht? Der hat meist aussagekräftigere Fehlermeldungen.

                Firefox bringt gar keine Fehlermeldung. Aber das Menü funktioniert auch heir nicht.

                nav_mus wird im Head aufgerufen mit <script language="JavaScript" src="/nav_mus.js" type="text/javascript"></script>

                Nein, da wird es eingebunden.

                Ach so.

                In welcher Datei steht diese Funktion?

                In einer aus dem Redaktionssystem generierten...

                Und was machst du, wenn der User JS deaktiviert hat? Bekommt er dann kein Menü?

                Nein. Bekommt er dann bisher nicht. Aber darüber mache ich mir zu einem späteren Zeitpunkt Gedanken...

                Es gibt auch http://forum.de.selfhtml.org/hilfe/faq.htm#quelltext-auslagernqtitle=andere Möglichkeiten Menüs zentral zu verwalten.

                Schon klar, dass es viele Varianten gibt. Aber unter den mir gegebenen Umständen habe ich mcih hjetzt mal für diese Variante entschieden...

                dj

                1. Hi,

                  Was steht in Zeile 60?

                  58: <script>
                  59: nav_mus();
                  60: </script>

                  Somit fürchte ich fast, dass "Mathias Brodala" irgendwie Recht!? Wie könnte ich den Slash "maskieren"?

                  Ja, er hat wohl um einiges mehr Erfahrung als ich. Versuch mal diesen Slash mit einem Backslash davor zu maskieren.

                  Firefox bringt gar keine Fehlermeldung. Aber das Menü funktioniert auch heir nicht.

                  Du kennst die Fehler-Konsole vom FF? Wenn nicht schau mal auf "Extras" -> "Fehler-Konsole".

                  In welcher Datei steht diese Funktion?

                  In einer aus dem Redaktionssystem generierten...

                  Ich hab mit sowas noch nie gearbeitet. Müsste aber heißen, dass sie auf der Seite verfügbar ist, oder?

                  Ich hab das ganze mal etwas einfacher nachgebaut und da hat es geklappt. Vielleicht kannst du damit auch dein Problem lösen. Wenn nicht wäre es vielleicht gut, wenn du deinen Quellcode mal online stellen könntest.

                  Es gibt auch http://forum.de.selfhtml.org/hilfe/faq.htm#quelltext-auslagernqtitle=andere Möglichkeiten Menüs zentral zu verwalten.

                  Schon klar, dass es viele Varianten gibt. Aber unter den mir gegebenen Umständen habe ich mcih hjetzt mal für diese Variante entschieden...

                  Nicht sehr schön, aber deine Sache.

                  mfG,
                  steckl

  2. Hallo dj.

    folgende (stark vereinfachte) Funktion funktioniert nicht:

    Und da „funktioniert nicht“ nicht funktioniert, funktioniert es wie nicht? (Lies: Fehlermeldungen?)

    function nav_mus() {
    linie += "<script>";
    linie += "mus_por();";
    linie += "</script>";
    document.write(linie);
    }

    Wahrscheinlich wegen dem Strichpunkt nach mus_por() oder?

    Nein, das Problem liegt im „</script>“. Maskiere den Slash.

    Was soll dieser Schnipsel eigentlich bewirken? Warum rufst du nicht einfach direkt „mus_por()“ auf?

    Einen schönen Donnerstag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)

    debian/rules

    1. Hallo dj.

      folgende (stark vereinfachte) Funktion funktioniert nicht:

      Und da „funktioniert nicht“ nicht funktioniert, funktioniert es wie nicht? (Lies: Fehlermeldungen?)

      function nav_mus() {
      linie += "<script>";
      linie += "mus_por();";
      linie += "</script>";
      document.write(linie);
      }

      Wahrscheinlich wegen dem Strichpunkt nach mus_por() oder?

      Nein, das Problem liegt im „</script>“. Maskiere den Slash.

      Was soll dieser Schnipsel eigentlich bewirken? Warum rufst du nicht einfach direkt „mus_por()“ auf?

      Einen schönen Donnerstag noch.

      Gruß, Mathias

      Wie genau kann ich den Slash maskieren? (Sorry, bin noch Anfänger!)

      Funktion des Schnipsels: mit mus_por wird eine Liste aus einem Redaktionssystem generiert. nav_mus steht im Template. Damit will ich verschiedene Listen aufrufen und so Untermenüs schreiben lassen.... dj