JS-Fenster beim Beenden mit "Confirm" erweitern....

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JS-Fenster beim Beenden mit "Confirm" erweitern....

    Hallo Leute,

    mit folgender Funktion erzeuge ich ein JS-Fenster.

    <script>
    function winopen(){
    window.open("EnjoyThis.swf","EnjoyThis","toolbar=no,menubar=no,resizeable=no,width=720,height=500")
    }
    </script>

    <a href="#" onclick="winopen()"><img src="myhobbies.jpg" width="335" height="239" border="0">

    Klickt der User nun auf "x" (Beenden) soll eine kurze Hinweismeldung kommen (ob wer wirklich beenden will) wo er dann OK (zum Bestätigen) bzw. Abbrechen (um im Fenster zu bleiben) drücken kann.

    Wie muss ich den Code konkret erweitern?? Hab da irgendwas über die Confirm-Methode nachgelesen - komm damit aber nicht ganz klar!?!?!?

    $PHP resource 4ever$

  • #2
    <a href="javascript:window.close();" onClick="return confirm('Wirklich beenden?');">X</a>

    confirm liefert true zurück wenn Ja geklickt wurde und false bei Nein ... erhält der Browser vom onClick-Event false zurück, so wird dem Link nicht gefolgt.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      und wie muss ich da meinen href genau umbauen,dass das funkt??
      Momentan schaut der href so aus:
      <a href="javascript:window.close();" onClick="return confirm('Wirklich beenden?');"><img src="myhobbies.jpg"
      width="335" height="239" border="0">

      aber da öffnet mir der explorer das fenster ja gar nicht, sondern fragt sofort beim Draufklicken auf das jpg ob ich wirklich beenden will.

      sorry, bin mit JS nicht so gut vertraut.
      $PHP resource 4ever$

      Kommentar


      • #4
        Hinter das href muß natürlich das, was bei Klick aif "Ja" geschehen soll. Willst du eine neue Seite laden, dann muß da die URL hin; willst du das aktuelle Fenster schließen, dann mußt du (wie im Beispiel) erstmal dem Browser sagen, daß hier ein JavaScript-Befehl folgt und ihm anschließende den Befehl geben (window.close).
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          das ist mir schon klar. nach zahlreichen versuchen bin ich aber immer noch nicht draufgekommen wie das codemäßig aussieht. ich muss das ganze ja in EINEN "href" unterbringen. Sprich, zuerst muss ich dem browser sagen,dass er bei winopen() das bild reinladen soll. bei window.close() [=> klick auf "x" im bild] soll er dann die Abfrage "Wirklich beenden" zurückgeben.

          <a href="#" onclick="winopen()"><img src="myhobbies.jpg" width="335" height="239" border="0"></a>

          <a href="javascript:window.close();" onClick="return confirm('Wirklich beenden?');"><img src="myhobbies.jpg" width="335" height="239" border="0"></a>

          aber genau da scheiters....
          $PHP resource 4ever$

          Kommentar


          • #6
            axo ... beides in der gleichen Grafik oder wie? Da gibt es zwei Lösungen:

            Entweder du zerschneidest das Bild so, daß das X ein eigenes Bild ist, packst da den close-Link hin und um alle anderen Teilbilder den winopen-Link.

            Oder du benutzt eine Image-Map, das geht sehr einfach in Dreamweaver oder ImageReady. Dann hast du nur eine Grafik, aber auch wieder (je nach Positionierung des X) bis zu fünf Links, von denen vier das gleiche tun - nämlich das Fenster zu öffnen.

            Außerdem: Soll das X nicht im Popup, sondern im alten Fenster sein, dann mußt du einen Verweis auf das neue Fenster speichern, damit du vom ursprünglichen Fenster darauf zugreifen kannst:

            PopupFenster = 0; // nötig, um ein "undefined" bei nicht-geöffnetem Fenster zu verhindern.

            function winopen ()
            {
            PopupFenster = window.open (...);
            }

            <a href="javascript:if (PopupFenster) if (confirm('Wirklich beenden?')) { PopupFenster.close(); PopupFenster = 0;">X</a>


            [Editiert von Titus am 02-09-2001 um 14:15]
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              Zwischenzeitlich habe ich folgendes fabriziert:

              <head>
              <title>It's me</title>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
              <script>
              function fenster(){
              fenster=window.open("myhobbies.jpg","Enjoy this","toolbar=no,menubar=no,resizeable=no,width=720,height=500");

              }

              function verlassen(){
              if(confirm("Wirklich Schließen?")==true){
              fenster.close();}
              }

              </script>
              </head>

              <a href="#" onclick="fenster()"><img src="myhobby.jpg" width="335" height="239" border="0"></a>
              <a href="#" onclick="verlassen()"><img src="myhobby.jpg" width="335" height="239" border="0"></a>

              Funkt beinahe. Das blöde ist nur, dass der Browser bei der Verwendung von zwei "href" natürlich auch zwei Grafiken macht.

              Was ich genau erreichen will:
              Der User klickt auf das Bild => es öffnet sich KEINE neue html-seite, sondern ein JS-Fenster (window.open()) => dieses Fenster hat rechts oben das allseits bekannte "x" zum Beenden. Klickt der User nun da drauf, dann soll die Confirm-Message kommen.
              Versteht ihr was ich meine??? (Hoffentlich)
              $PHP resource 4ever$

              Kommentar


              • #8
                Kann mir da wirklich niemand weiterhelfen??

                Bin ECHT schon am verzweifeln!
                -schluchz-heul-sniff
                $PHP resource 4ever$

                Kommentar


                • #9
                  Original geschrieben von Metallica
                  Was ich genau erreichen will:
                  Der User klickt auf das Bild => es öffnet sich KEINE neue html-seite, sondern ein JS-Fenster (window.open()) => dieses Fenster hat rechts oben das allseits bekannte "x" zum Beenden. Klickt der User nun da drauf, dann soll die Confirm-Message kommen.
                  dieses [x] oben in der ecke gehört zu den normalen eigenschaften eines jeden fensters unter windows, da hast du also höchstens über den code des programm, zu dem das fenster gehört (hier also der browser), einfluss drauf, aber definitiv _nicht_ über html und/ oder javascript!!!

                  und ich sehe sowieso nicht so ganz, welchen zweck du mit dieser abfrage verfolgst - hältst du die besucher deiner seite _so_doof_, dass sie sich nicht darüber im klaren sind, dass sie mit dem klick auf das [x] oben in der ecke ein programmfenster schliessen?
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    @wahsaga:
                    Selbstverständlich halte ich die User für so gescheit, dass sie wissen was sie mit dem [x] anfangen können.
                    Welchen Zweck ich verfolge:
                    Ich habe im Flash ein kleines Spiel entwickelt. Auf meiner HP sieht der User einen screenshot(.jpg). Klickt er darauf, dann starte ich das FlashGame.swf das ich wie folgt aufrufe:

                    <script>
                    function winopen(){
                    window.open("EnjoyThis.swf","EnjoyThis","toolbar=no,menubar=no,resizeable=no,width=720,height=500")
                    }
                    </script>

                    <a href="#" onclick="winopen()"><img src="myhobbies.jpg" width="335" height="239" border="0">

                    Vorher gibt der User seinen Namen, email, kommentar und noch ein paar kleinigkeiten ein. Klickt er während des Spiels nun auf das besagte [x] dann schließt er das Browserfenster und ist "draussen" => ich möchte ihn mit einer Message lediglich über diesen Umstand "informieren".
                    Das versuche ich halt gerade mit dieser Confirm-Methode von JS. Wenn das irgendwie anders geht => auch kein Problem. Nur funken soll's. Bin echt schon am verzweifeln.

                    Hoffentlich verstehst Du jetzt was ich erreichen will!?!?!?

                    Also, nix für ungut.
                    Bye

                    [Editiert von Metallica am 13-09-2001 um 08:56]
                    $PHP resource 4ever$

                    Kommentar


                    • #11
                      Original geschrieben von Metallica
                      Selbstverständlich halte ich die User für so gescheit, dass sie wissen was sie mit dem [x] anfangen können.

                      Vorher gibt der User seinen Namen, email, kommentar und noch ein paar kleinigkeiten ein. Klickt er während des Spiels nun auf das besagte [x] dann schließt er das Browserfenster und ist "draussen" => ich möchte ihn mit einer Message lediglich über diesen Umstand "informieren".
                      das widerspricht sich aber ein bisschen, oder?
                      _entweder_ der user ist so gescheit dass er weiss dass er mit einem klick auf das [x] draussen ist, _oder_ man muss ihn darauf hinweisen...
                      aber doch nicht beides, höchstens bei einem senilen user.

                      aber anyway, dafür gibt es mit html & javascript keine lösung...

                      höchstens, wenn du das fenster im fullscreen-modus öffnest und sofort danach ein resize durchführst, dann hat das fenster _gar_nichts_ von einem normalen fenster, nicht mal das [x] oben in der ecke...
                      beenden kann der user solch ein fenster nur durch alt+f4, oder aber durch einen link den du ihm gibst (mit href="javascript:self.close"). bei diesem link könntest du die ausführung natürlich von einem confirm abhängig machen. wenn du diesen dann noch als kleines 'x' rechts oben in der ecke plazierst, hast du in etwa den gewünschten effekt...
                      aber fullscreen funzt nur im ie.

                      [Editiert von wahsaga am 13-09-2001 um 10:37]
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        @wahsaga:
                        Jaja, is mir alles klar. Der User kann auf das X klicken. Kein Problem. Normalerweise würde sich das Fenster dann schließen. Das soll es auch tun. Nur sollte nachdem er auf X geklickt hat eine Hinweismeldung kommen die einen OK und einen Abbrechenbutton hat. Klickt er OK ist er draussen. Klickt er abbrechen, geht das Spiel weiter.

                        Ich dachte das geht mit confirm. Hab echt nicht gewußt,dass das nur so kompliziert (wie du meintest) machbar ist.

                        Wie ich mir Confirm herumexperimentiert habe ist nämlich genau so ein "Bestätigungs-Fenster" gekommen wie ich es mir vorstelle. Deshalb hab ich's auch dann so gepostet (wie ich nimma weitergekommen bin).

                        Verstehst Du??
                        $PHP resource 4ever$

                        Kommentar


                        • #13
                          ja, schon klar, dafür ist confirm ja auch gedacht, dass man javascript aktionen vom user beeinflussen lassen kann.

                          aber mit javascript kannst du eben nur _innerhalb_ der html-seite arbeiten, und nicht die browserinstanz selber beeinflussen...
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Wenn ich mit Confirm das Instanzfenster nicht beeinflussen kann, wie kann man dann mein Problem lösen??
                            Mit irgendeiner anderen Methode muss das doch gehen!?!?!
                            Ich möchte auf keinen Fall das "x" deaktivieren. Da verscheuche ich ja alle User.
                            $PHP resource 4ever$

                            Kommentar


                            • #15
                              Original geschrieben von Metallica
                              Wenn ich mit Confirm das Instanzfenster nicht beeinflussen kann, wie kann man dann mein Problem lösen??
                              Mit irgendeiner anderen Methode muss das doch gehen!?!?!
                              Ich möchte auf keinen Fall das "x" deaktivieren. Da verscheuche ich ja alle User.
                              klar geht das, wenn man unter windows programme schreiben kann, kann man sich ja den quellcode vom ie deassemblieren und wie gewünscht abändern... aber vorsicht, dann hast du sofort microsoft am hals, wenn du an deren code rumpfuscht :-)

                              wie gesagt, es gehört zum browserprogramm, und deshalb kommst du da nicht ran.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X