Holger Homann: Javascript in Perl

Hallo,

ich habe folgendes Skript in Perl geschrieben und dabei versucht ein Teil Javascript zusätzlich mit einzubinden der 2 Frames auf meiner Seite aktualisiert.

print "<script type=text/javascript>";
print "<!--";
print "function multiplelinks() {";
print "parent.index.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=index&status=guest';";
print "parent.footer.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=footer&status=guest';";
print "}";
print "//-->";
print "</script>";

Der Javascript wird duch ein Klick auf einen Button aufgerufen...

print "<br><br><button name=back value='Home' onClick=multiplelinks()></button>";

Nur leider funktioniert es nicht. Ich bekomme immer wieder die Meldung Objekt erwartet. Mit einem Frame klappt es einwandfrei...

print "<input name=Register type=button value=Register onClick=parent.maindata.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=maindata&status=register'>";

Ich habe einfach nur versucht den Beispielskript "2 Frames gleichzeitig aktualisieren" zu adaptieren.

Ich hoffe jemand von euch kann mir helfen!

Gruss

Holger

  1. hi,

    ich habe folgendes Skript in Perl geschrieben und dabei versucht ein Teil Javascript zusätzlich mit einzubinden der 2 Frames auf meiner Seite aktualisiert.
    [...]
    Nur leider funktioniert es nicht. Ich bekomme immer wieder die Meldung Objekt erwartet.

    dein perl-code interessiert zunächst nicht.

    untersuche das, was beim client ankommt, auf richtigkeit.

    gruß,
    wahsaga

    --
    I'll try being nicer if you'll try being smarter.
    1. Nur leider funktioniert es nicht. Ich bekomme immer wieder die Meldung Objekt erwartet.

      dein perl-code interessiert zunächst nicht.

      untersuche das, was beim client ankommt, auf richtigkeit.

      ???? Was meinst Du ???? Wenn ich die Webseite aufrufe ist erstmal alles okay. Nur wenn ich dann auf den Button klicke sagt er halt Fehler etc. Ich weiss nicht was ich anders gemacht habe als in dem Beispielskript.

      Ich habe ja schon vermutet das der Perl-Interpreter irgend ein Zeichen falsch umsetzt und deswegen das Skript nicht erkannt wird aber .... ich weiss halt nicht wo ich noch suchen soll.

      Der Quelltext der Seite wird wie folgt angezeigt:
      <html><head><title>Portal der Standardkalkulation</title><meta name=author content=Holger Homann FC SAS 22><meta name=description content=Portal der Standardkalkulation - Grunddatencontrolling- und -informationssystem><meta name=keywords content=Grunddaten, Kalkulation, Standardkalkulation, Buchhaltungssicht, Portal, Anfragen><meta name=robots content=index><script type=text/javascript><!--function multiplelinks() {parent.login.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=login&status=guest';}//--></script><base target=maindata></head><body style=background-color:#E0E0E0><h4> Ihre Registrierung war erfolgreich!!!</h4><br><br><button name=back value='Home' onClick=javascript:multiplelinks()></button></body></html>

      1. Hi,

        Ich habe ja schon vermutet das der Perl-Interpreter irgend ein Zeichen falsch umsetzt und deswegen das Skript nicht erkannt wird aber .... ich weiss halt nicht wo ich noch suchen soll.

        Wie wärs mit ein paar Anführungszeichen bei Attributwerten?

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.Mud-Guard.de/
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Ich habe die Anführungszeichen - /" - gesetzt, aber es hat leider nicht funktioniert trotzdem danke.

          Cu holger

          Quelltext der generierten Seite:
          <html><head><title>Portal der Standardkalkulation</title><meta name=author content=Holger Homann FC SAS 22><meta name=description content=Portal der Standardkalkulation - Grunddatencontrolling- und -informationssystem><meta name=keywords content=Grunddaten, Kalkulation, Standardkalkulation, Buchhaltungssicht, Portal, Anfragen><meta name=robots content=index><script type=text/javascript><!--function multiplelinks() {parent.login.location.href="http://bchk36kc/cgi-bin/genhtml.cgi?hsite=login&status=guest";parent.maindata.location.href="http://bchk36kc/cgi-bin/genhtml.cgi?hsite=maindata&status=guest";parent.footer.location.href="http://bchk36kc/cgi-bin/genhtml.cgi?hsite=footer&status=guest";parent.index.location.href="http://bchk36kc/cgi-bin/genhtml.cgi?hsite=index&status=guest";parent.titel.location.href="http://bchk36kc/cgi-bin/genhtml.cgi?hsite=titel&status=guest";}//--></script></head><body style=background-color:#E0E0E0><h4> Ihre Registrierung war erfolgreich!!!</h4><br><br><button name=back value='Home' onClick=multiplelinks()></button></body></html>

          1. Hi,

            Ich habe die Anführungszeichen - /" - gesetzt, aber es hat leider nicht funktioniert trotzdem danke.

            Ich seh da immer noch einige Stellen, an denen sie fehlen.

            cu,
            Andreas

            --
            MudGuard? Siehe http://www.Mud-Guard.de/
            Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
            1. Ich seh da immer noch einige Stellen, an denen sie fehlen.

              Dann sage er mir wo ausser in den HTML-Tags!!! Bisher haben die Seiten alle super funktioniert nur jetzt nicht mit Javascript. Ich versuch es jetzt schon den ganzen Tag und finde keine Lösung.

          2. hi,

            Quelltext der generierten Seite:

            echt super lesbar, glückwunsch ...
            was hältst du von ein paar zeilenumbrüchen?

            <script type=text/javascript><!--function multiplelinks()

            wengistens hier solltest du einen machen - denn <!--function ist kein gültiges javascript-schlüsselwort.

            <script type="text/javascript">
            <!--
               function multiplelinks()
               ...

            gruß,
            wahsaga

            --
            I'll try being nicer if you'll try being smarter.
            1. Hallo wahsaga,

              daaaankee!!!!

              Ich habe damals gelernt, dass man html-seiten sprichwörtlich in eine Zeile schreiben könnte, der Browser würde sich für Zeilenumbrüche gar nicht interessieren, deshalb habe ich auch nicht wirklich drauf gerachtet, dass der Perl-Interpreter alles in einer Zeile ausgibt.

              Wenn man nun vom javascript: absieht war alles richtig habe nur noch die /n eingefügt damit Perl ein paar Zeilenumbrüche macht, selbst die maskierten " waren nicht erforderlich.

              THX - der Tag ist gerettet.

              P.S. Das war jetzt genau die sprichwörtliche Kleinigkeit auf die ich mit Sicherheit nicht mehr gekommen wäre auch wenn es für euch/ dich total easy ausgesehen hat.

      2. Hi,

        ???? Was meinst Du ????

        dass serverseitiger Code bei clientseitigen Problemen eben so relevant ist, wie die aktuelle Außentemperatur in Burkina Faso.

        Der Quelltext der Seite wird wie folgt angezeigt:

        _Das_ ist relevant. Wie viele Fehler entdeckst Du in diesem Code? Ich möchte keine Zahl zur Orientierung nennen, weil ich ganz bestimmt mindestens ein halbes Dutzend übersehen werde.

        Sorge dafür, dass die Scriptausgabe dem entspricht, was der Client erhalten soll.

        [...] onClick=javascript:multiplelinks()[...]

        Ich frage mich immer wieder, woher die Annahme stammen mag, "javascript:" sei ein gültiger JavaScript-Befehl.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Ich finde es ja schön, dass Du mir sagst, dass viele Fehler zu sehen sind, aber ich kann nun mal kein Javascript und ich finde sie nicht ... sonst würde ich ja auch nicht um Hilfe bitte.

          So nun sieht er der Quelltext so aus, diese Version hatte ich auch schon ausprobiert, klappt aber trotzdem nicht.

          <html>
          <head>
          <title>Portal der Standardkalkulation</title>
          <meta name=author content=Holger Homann FC SAS 22>
          <meta name=description content=Portal der Standardkalkulation - Grunddatencontrolling- und -informationssystem>
          <meta name=keywords content=Grunddaten, Kalkulation, Standardkalkulation, Buchhaltungssicht, Portal, Anfragen>
          <meta name=robots content=index>
          <script type=text/javascript>
          <!--
          function multiplelinks() {
          parent.login.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=login&status=guest';
          parent.maindata.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=maindata&status=guest';
          parent.footer.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=footer&status=guest';
          parent.index.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=index&status=guest';
          parent.titel.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=titel&status=guest';}
          //-->
          </script>
          </head>
          <body style=background-color:#E0E0E0>
          <h4> Ihre Registrierung war erfolgreich!!!</h4>
          <br><br><button name=back value='Home' onClick=multiplelinks()></button>
          </body>
          </html>

          1. hi,

            Ich finde es ja schön, dass Du mir sagst, dass viele Fehler zu sehen sind, aber ich kann nun mal kein Javascript und ich finde sie nicht ...

            du sagtest doch eingangs, dass du eine funktionierende version des scriptes hättest - dann brauchst du doch nur vergleichen, wo die syntax abweichungen aufweist.

            gruß,
            wahsaga

            --
            I'll try being nicer if you'll try being smarter.
            1. Ich suche nun schon den ganzen Tag nachdem Fehler ... ich habe die Skripte auch verglichen und kann keinen Unterschied feststellen, aber da ich schon so lange daran rumwerkle, kann es sein, dass ich momentan wesentliche Dinge übersehe  und deshalb ... suprise surprise ... wollte ich mir den Rat von Dritten einholen. Aber anscheinend ist es hier ja üblich eher "Ich sehe was, was Du nicht siehst und das ist ein Fehler" anstatt mal einen gescheiten hinweis zu geben.

  2. print "<script type=text/javascript>";
    print "<!--";
    print "function multiplelinks() {";
    print "parent.index.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=index&status=guest';";
    print "parent.footer.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=footer&status=guest';";
    print "}";
    print "//-->";
    print "</script>";

    Du kennst here-docs? nein?
    Das ist nützlich, wenn man längere mehrzeiligen Code ausgeben möchte. In deinem Falle:

    print <<TEXT;
    <script type=text/javascript>
    <!--
    function multiplelinks() {
    parent.index.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=index&status=guest';
    parent.footer.location.href='http://bchk36kc/cgi-bin/genhtml.cgi?hsite=footer&status=guest';
    }
    //-->
    </script>
    TEXT

    ACHTUNG! In der Zeile darf davor und danach darf kein Zeichen kommen - kein Tab oder keine Leerzeichen. Aber es muss ein Zeilenumbruch folgen.

    Dein Problem war, das im Browser folgendes ankommt:
    <!--function multiplelinks() ....

    Das heißt du hast hier nur eine HTML Kommentarzeile, eine ungültige übrigens da ein gültiger HTML Kommentar so aussieht: <!-- Kommentar --> (ist aber dem IE egal)

    Struppi.