<body onLoad="If-Schleife">

  • Ich will einstellen, dass beim Laden der Seite ein window.alert kommt, und sich nachdem auf OK geklickt wurde die Funktion zum Drucken öffnet.
    Bisher hab ich schon folgendes, was aber noch nicht funktioniert:


    <body onLoad="window.alert('Text.')if (return = true) {javascript:window.print()} else{end*}"


    Im Moment kommen die beiden Funktionen noch fast gleichzeitig, wie als wenn ich keine If-Schleife drin hätte.
    Kann mir jemand weiterhelfen?


    *hier wusste ich nicht, was ich hinmachen soll. Vielleicht ist das else auch garnicht nötig...

  • Wenn du schreibst: if (return = true) heißt das, dass du return den Wert true zuweist. Richtig ist: if (return == true), was aber nicht funktioniert, da return nirgends definiert wurde.


    Aber da window.alert die Skriptausführung sowieso anhält, braucht du überhaupt keine if-Anweisung. (Warum bei deinem Code trotzdem beide Funktionen gleichzeitig ausgeführt werden, versteh ich allerdings nicht^^, dieser hier läuft bei mir)


    Code
    1. <body onLoad="window.alert('Nachricht'); window.print()">


    Falls du eine Ja/Nein-Überprüfung haben willst, würde ich window.confirm verwenden, da window.confirm einen Wert zurück gibt (true/false), der sagt, ob der Benutzer auf ok gedrückt hat.


    Code
    1. <body onLoad="result = window.confirm('Ausdrucken?'); if (result == true) {window.print()} else {*}">


    Bei dem Stern könntest du jetzt soetwas wie history.back() einfügen.


    Ausprobiert habe ich es mit Firefox und Opera.


    mfg

  • Ich dachte eigentlich, dass bei einer normalen Meldung nach dem OK Drücken "true" zurückgegeben wird.
    Dann wollte ich es ebend so einstellen, dass die Druck-Befehl kommt, sobald man auf OK gedrückt hat.


    Hast du eine Idee, ob es geht, dass eine Funktion erst ausgeführt wird, wenn OK gedrückt wurde?


    PS: Die Meldung soll nur einen Hinweis enthalten, weshalb ich eine Ja-Nein-Abfrage nicht so gut fand.

  • window.alert haltet die Skriptausführung solange an, biss entweder auf ok oder auf X gedrückt wird. Daher ist es nicht notwendig, zu überprüfen, ob der User auf ok geklickt hat. Dieser Code sollte funktionieren, aber window.print wird auch aufgerufen wenn man auf das X klickt...


    Code
    1. <body onLoad="window.alert('Nachricht'); window.print()">