Bernhard Peissl: onClick=location.href geht in NN aus unerfindlichen Gründen nicht

Hallo

Ich schätze, dass da in meinem Kopf wieder irgendein ziemlich blöder Denkfehler sein Unwesen treibt. Wenn also jemand von euch so lieb sein könnte, und ihn von dort vertreiben würde, wäre echt nett ;-)

Schätzungsweise fehlt wieder irgendwo ein Punkt oder so, kann auf jeden Fall nix Weltbewegendes sein, denn im IE funktionierts. Nur der NN macht das Location.href nicht und einen Anker will ich nicht über den Button legen, wenns sich vermeiden lässt!

Ich verwende Perl um eine Seite auszugeben, hier ein Ausschnitt:

// print "<input type='submit' value='Ende'>\n";
// print "<input type='reset' value='Zurücksetzen'>\n";

// $zeige_kurse   = "/cgi-bin/admin/changeKurse.pl?bereich=".$lva_bereich."&gruppe=".$lva_gruppe;

// print "<script language='Javascript'>\n";
// print "  function abort() { window.location.href='".$zeige_kurse."'; }\n";
// print "</script>\n";

// print "<input type='button' value='Abbrechen' onClick='abort();'>\n";

Das ganze sitzt zwischen 2 wunderschönen FORM-Tags, dürfte also nix geben, aber der NN rührt sich nicht vom Fleck!

Vielleicht gibts da ja wieder irgendwas, das man bei NN besonders beachten muss, wenn man einen Link aus einem Button öffnet. Wär ja nicht das erste mal ;-)

liebe Grüsse
Bernhard

  1. hi ho

    // print "<input type='button' value='Abbrechen' onClick='abort();'>\n";

    ^^^
    was ist das?

    nun ja, html _verlangt_ double-quotes (") fuer argumente, wenn ueberhaupt, ich habe es nicht getestet, aber vielleicht liegt es daran?

    Beispiel:

    print "<input type="button" value="Abbrechen" onClick="abort();">\n";

    cua

    n.d.p.

    1. Hallo n.d., hallo Bernhard,

      nun ja, html _verlangt_ double-quotes (") fuer argumente, wenn
      ueberhaupt, ich habe es nicht getestet, aber vielleicht liegt es daran?

      dachte ich auch erst, ist aber egal denn:

      Ich hab Bernhards Code mal ge-Copy&Paste-d, vom Perldrumrum befreit,
      und ein <form></form> Päärchen drum gebaut - läuft. (Trotz der falschen ' )

      Gruss,
      Carsten

      1. Hi!

        Das // hab ich nur zur Veranschaulichung dass das was dahinter kommt Quelltext ist!!

        Ich stell euch mal die ganze Seite Rein, die ausgegeben wird:

        <html>
        <head>
        <title>Neuer Kurs - Schritt 3/3</title>
        <style>
           td {
              font-family: Verdana, Arial;
              font-size: 10pt;
           }
        </style>
        </head>
        <body>
        <form name='NeuerKursStep3' action='/cgi-bin/admin/neuerKurs.pl' method='GET'>
        <input type='hidden' name='Step' value='3'>
        <input type='hidden' name='LvaID' value='10002'>
        <input type='hidden' name='LvaBereich' value='ausbildung'>
        <input type='hidden' name='LvaGruppe' value='stb'>
        <input type='hidden' name='Anmeldungen_an' value='hans.temmel@akademie.vienna.at'>
        <table border='0' width='600' align='center' cellpadding='5'>
        <tr>
        <td colspan='2' align='center'>
           <h1>Neuer Kurs</h1>
           <h3>Schritt 3/3: Termine</h3>
        </td>
        </tr>
        <tr>
        <td colspan='2' align='center'><hr></td>
        </tr>
        <tr valign='top'>
        <td align='right'><b>Kurs-Nummer:</b></td>
        <td><input type='Text' name='KursNummer' size='5' maxlength='5'> </td>
        </tr>
        <tr valign='top'>
        <td align='right'><b>Termin:</b> </td>
        <td><textarea name='Termin' cols='40' rows='4'></textarea><br>
        <ul style='margin-top: 10px; margin-bottom: 10px; margin-left: 15px;'>
          <li>Aufeinanderfolgende Tage mit '-' zusammenfassen</li>
          <li>mehrere Blöcke mit '+' verbinden</li>
          <li>Monate in Zahlen, also <u>nicht</u> ausschreiben</li>
        </ul>
        </td>
        </tr>
        <tr valign='top'>
        <td align='right'><b>Ort:</b></td>
        <td><textarea name='Ort' cols='40' rows='4'></textarea></td>
        </tr>
        <tr valign='top'>
        <td align='right'><b>Zeit:</b></td>
        <td>
        <table>
        <tr>
          <td> <b>von:</b></td>
          <td><input type='text' name='Zeit_von_std' size='2' maxlength='2'></td>
          <td>:</td>
          <td><input type='text' name='Zeit_von_min' size='2' maxlength='2'> Uhr</td>
        </tr>
        <tr>
        <td><b>bis:</b></td>
        <td><input type='text' name='Zeit_bis_std' size='2' maxlength='2'></td>
        <td>:</td>
        <td><input type='text' name='Zeit_bis_min' size='2' maxlength='2'> Uhr</td>
        </tr>
        </table>
        <br clear='all'>
        <p><b>Platz für Anmerkungen:</b></p>
        <textarea name='Zeit_Anmerkungen' cols='40' rows='4'></textarea>
        </td>
        </tr>
        <tr valign='top'>
        <td align='right'><b>Referenten:</b> </td>
        <td><textarea name='Referenten' cols='40' rows=4></textarea> </td>
        </tr>
        <tr valign='top'>
        <td colspan='2' align='center'><hr></td>
        </tr>
        <tr valign='top'>
        <td> </td>
        <td align='center'>
        <input type='Submit' value='Ende'>
        <input type='reset' value='Zurücksetzen'>
        <script language='Javascript'>

        function abort() { window.location.href='/cgi-bin/admin/changeKurse.pl?bereich=ausbildung&gruppe=stb'; }

        </script>
        <input type='button' value='Abbrechen' onClick='abort();'>
        </td>
        </tr>
        </table>
        <p><br clear='all'></p>
        </form>
        </body>
        </html>

        Ich sitz jetzt schon ziemlich lang an diesem Projekt, kann also leicht sein, dass ich bloss irgendein Kinkerlitzchen übersehen habe!

        liebe Grüsse
        Bernhard

        1. hi ho

          sorry, dass das hier ein bloeder einzeiler ist, aber - bei mir (win98se/NN4.7) funktioniert es .-)
          soll heissen, es erscheint ne alert box mit - kann /cgi-bin/blalala nicht finden...

          cua

          n.d.p.

          p.s.: nichtsdestotrotz sind singlequotes trotzdem unschoen .-) - und wo wir gerade dabei sind, pack die funktion ruhig in den head.... .-)

          1. Hallo

            sorry, dass das hier ein bloeder einzeiler ist, aber - bei mir (win98se/NN4.7) funktioniert es .-)

            Ich hasse das. Es scheint schon wieder so ein Fehler zu sein, der nur bei mir ein Fehler ist, aber bei allen andern gehts. Das sind immer so meine Super-Fehler!

            p.s.: nichtsdestotrotz sind singlequotes trotzdem unschoen .-)

            jaja, hast ja recht, aber ' ist kürzer und schneller als bei jedem Argument zweimal " zu schreiben.

            • und wo wir gerade dabei sind, pack die funktion ruhig in den
              head.... .-)

            Bis zur Tabelle gebe ich alles mit print <<ENDE; aus. Wenn ich da auch noch ein print hineinschustere, kann ich gleich alles mit print "..." ausgeben. Aber ansonsten stehn bei mir die Scripts immer schön brav im <head> ;-)

            ich habs übrigens gerade mit <a href="javascript: abort();"> probiert, geht auch nicht! Irgendwas stinkt da zum Himmel bei meinem NS4.75 - Macht auch sonst oft Sachen, die mir mit einem Anderen NS nicht passiert sind!

            liebe Grüsse
            Bernhard

            1. re hi

              ich haette noch ne alternativloesung anzubieten, die voellig ohne javascript auskommt:

              mach den <abbrechen>-button nicht als "button" sondern als zweiten "submit"und gib ihm einen namen.
              beim formular wird immer nur der name und value desjenigen submit-buttons mitgeschickt, der fuers absenden verantwortlich war (also der angeklickte).
              Im CGI auf der anderen Seite wertest du diese Information aus und machst gegebenfalls einen redirect oder sonstwas:-), damit bist du auf der sicheren Seite.

              cua

              n.d.p.

              1. Hi

                ich haette noch ne alternativloesung anzubieten, die voellig ohne javascript auskommt:

                mach den <abbrechen>-button nicht als "button" sondern als zweiten "submit"und gib ihm einen namen.
                beim formular wird immer nur der name und value desjenigen submit-buttons mitgeschickt, der fuers absenden verantwortlich war (also der angeklickte).
                Im CGI auf der anderen Seite wertest du diese Information aus und machst gegebenfalls einen redirect oder sonstwas:-), damit bist du auf der sicheren Seite.

                Mit Kanonen auf Spatzen schiessen ;-) na ich weiss nicht ???

                Das wird ohnehin nur ein Administrationsprogramm für die Mitarbeiter, das muss ja nicht so perfekt werden, sieht ja eh nie ein Kunde!

                Trotzdem ärgerts mich!

                liebe Grüsse
                Bernhard

                1. hi ho

                  Mit Kanonen auf Spatzen schiessen ;-) na ich weiss nicht ???

                  naja, sooo grosse kanonen sinds ja nun auch wieder nicht, letztendlich verschiebst du die problemloesung nur auf den server, der client kann funktionieren, wie er will .-)

                  Das wird ohnehin nur ein Administrationsprogramm für die Mitarbeiter, das muss ja nicht so perfekt werden, sieht ja eh nie ein Kunde!

                  ^^^
                  das macht gar nichts, wenn dus einmal richtig gemacht hast, hast du immer wieder was davon und brauchst das naechste mal nicht von vorne anfangen ....

                  Trotzdem ärgerts mich!

                  glaub ich .-)

                  cua

                  n.d.p.

                  1. auch hi ho

                    naja, sooo grosse kanonen sinds ja nun auch wieder nicht,
                    letztendlich verschiebst du die problemloesung nur auf den
                    server, der client kann funktionieren, wie er will .-)

                    für einen mieselsüchtigen Button ein Cgi-script auf den Server werfen ?

                    das macht gar nichts, wenn dus einmal richtig gemacht hast, hast
                    du immer wieder was davon und brauchst das naechste mal nicht von
                    vorne anfangen ....

                    und genau deswegen hab ich geschrieben ...

                    Trotzdem ärgerts mich!

                    is mir ja eh klar, aber ich bin jetzt auch schon so voll im Kopf,
                    sitz jeden Tag bis mind. 4:00 früh, und nach dem Frühstück (2:00
                    nachmittag) bin ich schon wieder fest am tippseln, und das jetzt
                    schon durchgehend seit ca. 10 Tagen. Ich will dass das Ding jetzt
                    einfach nur funktioniert, um die Kleinigkeiten kümmere ich mich
                    später mal. Jedenfalls will ich schauen, dass es bald mal fertig
                    wird. Die Nachtschufterei hängt sich nämlich schön langsam
                    ziemlich an ;-(

                    übrigens, ich hör grad im Radio: "hello darkness my old friend ..."
                    (Sounds of silence) -passt irgendwie ;-) und still ist es ja auch,
                    zumindest was meinen Netscape angeht, der macht ja keinen Mucks.

                    liebe grüsse
                    bernhard

                    1. re hi ho :-)

                      für einen mieselsüchtigen Button ein Cgi-script auf den Server werfen ?

                      natuerlich nicht -> du aenderst einfach das bestehende script, was sowieso durch den submit aufgerufen wird, fragst dort zuerst ab, welcher submit-button denn nun gklickt worden ist und leitest bei bedarf einen redirect ein - mehr nicht :-)
                      machs dir doch nicht so schwer *g*

                      cua

                      n.d.p.

                      1. hallo n.d.!

                        re hi ho :-)

                        *g* warst du mal im Chor (do re mi fa so la si do) ;-) ?

                        natuerlich nicht -> du aenderst einfach das bestehende script,
                        was sowieso durch den submit aufgerufen wird, fragst dort zuerst
                        ab, welcher submit-button denn nun gklickt worden ist und leitest
                        bei bedarf einen redirect ein - mehr nicht :-)
                        machs dir doch nicht so schwer *g*

                        Stimmt, danke, verzeih meine geistige Trägheit heute, Grund hab ich ja schon geschrieben :-( Fang schon an echt kompliziert zu denken! Jetzt gehts bergab !

                        nächtlich grüsse aus Wien
                        Bernhard

            2. Hi Bernhard,

              Ich hasse das. Es scheint schon wieder so ein Fehler zu sein, der nur bei mir ein Fehler ist, aber bei allen andern gehts. Das sind immer so meine Super-Fehler!

              Sag mal, das klingt ja eher so, als sei Deine Netscape-Installation faulig. Hast Du denn schon ne Neuinstallation probiert? Ich hatte schon die drolligsten Fehler mit auf den ersten Blick funktionierenden, aber eigentlich dann doch partiell abgerauchten Installationen.

              Grüße,

              Utz

              1. Hallo Utz,

                Sag mal, das klingt ja eher so, als sei Deine Netscape-Installation faulig. Hast Du denn schon ne Neuinstallation probiert?

                Wenn ich das Ding erst mal drunten hab, dann sieht nie wieder irgendeine Version von irgendeinem Netscape auch nur irgendein Bit von meiner Festplatte.

                Ich werde einen Netscape-Bann verhängen. Habs echt satt, der ärgert mich _nur_! Der einzige Grund warum ich ihn noch habe, ist der dass ich mich ein wenig besser fühle wenns auch auf ihm geht, weil es dann sicher 100% richtig programmiert ist, und das mit allen Schikanen und Sahne oben drauf ;-)

                ... mit auf den ersten Blick funktionierenden, aber eigentlich
                dann doch partiell abgerauchten Installationen.

                ähm wie war das: "partiell abgerauchte Installationen", ist das was aus dem neuen Duden, oder hab ich in der Schule nicht so recht aufgepasst ;-) Jedenfalls hab ich das direkt von der superschnellen Netscape-Homepage mit dem noch-super-schnelleren Smart Download nach ca. 20 erfolglosen Versuchen runtergeladen. Was solviel schweiss gekostet hat deinstalliert man nicht so leicht ;-(

                Es geht ja sogar in NS6, bloss im 4.75er wills nicht sein, aber ich werd den Button einfach rausnehmen, dann kann er auch nicht "nicht" funktionieren ;-)

                liebe grüsse
                bernhard

                1. Hi

                  Ich hab gerade noch was gefunden was im IE geht und auch im N6 aber halt nicht im N4.75 - tja, jetzt fliegt er raus !!!

                  // <script language='JavaScript'>  # befindet sich jetzt auch im <head> ;-)
                  // function terminaenderung() {    
                  //   document.forms[0].elements['terminaenderung-flag'].checked = true;
                  // }
                  // </script>

                  [...]

                  // print " <td><textarea name='Termin' cols='40' rows='4' onFocus='terminaenderung();'>".$datum."</textarea><br>\n</td>\n</tr>\n";

                  [...]

                  // print "<tr>\n<td><input type='checkbox' name='terminaenderung-flag'".$terminaenderung."></td> \n<td><font color='red'>Terminänderung!</font></td>\n</tr>\n";

                  Aber vielleich bin ja auch ich der Dumme ;-)

                  schöne grüsse von dem-der-Netscape-reichlich-satt-hat-aber-sich-trotzdem-wieder-eine-neue-version-aber-keinen-4.75er-mehr-draufspielen-wird!
                  nämlich von mir :-)
                  Bernhard