Ankündigung

Einklappen
Keine Ankündigung bisher.

Confirm eigene Bestätigungsfelder?

Einklappen

Neue Werbung 2019

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

  • Confirm eigene Bestätigungsfelder?

    Hallo,

    manche kennen vielleicht die JavaScript Confirms, wenn man im forum ne pm bekommt, ob man sofort zum Posteingang will oder lieber nicht.

    Wie kann ich jetzt eigene Buttons bei z.B. confirm() benutzen? Gibts da ne andere Funktion für?

    Wäre dankbar für Tipps
    MfG
    Ithron

  • #2
    Das window-Objekt in JavaScript kennt nur die Methoden alert(), confirm() und prompt(), die unbedingt eine Eingabe durch den Benutzer erfordern. Bei allen hängt das Aussehen vom verwendeten Browser ab und kann nicht beeinflusst werden.

    Die einzige Möglichkeit, die ich sehe, ist, dass du selber was designt, was dann angezeigt wird mit den Buttons, die du gerne hättest. Es wird dir aber nicht möglich sein, das ganze so zu programmieren, dass es die gleiche Wirkung hat wie die window-Methoden z.B. dass man sonst nichts mehr im Browser anklicken kann (was ich sowieso bissl sinnlos finde.... auf der aktuellen Seite ist das ja ok, aber warum sollte man nicht den Tab wechseln können?). Dass man sonst nichts auf der Seite, wo du das selber designte "Fenster" anzeigst, nichts mehr ändern kann, lässt sich problemlos erreichen (es lässt sich aber auch problemlos umgehen, wenn man Ahnung hat).

    Kommentar


    • #3
      Hmm ne danke, dann geb ich mich mit Ok und Abbrechen zufrieden
      MfG
      Ithron

      Kommentar


      • #4
        Es afair ist schon möglich confirm() und alert() durch eigene Funktionen zu überschreiben. Da ich das selbst noch nie gebraucht hab weiß ich aber nicht wie

        Schau doch mal in bekannten JS-Frameworks wie extJS oder script.aculo.us wie die das lösen...
        [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

        Kommentar


        • #5
          Zu ueberschreiben? alert.prototype? (ich mein nicht das Framework) - waere interessant. Bin bisher immer den anderen Weg gegangen, rufe eigene Funktion auf, die alert() aufruft. So bleib ich flexibel und muss nur an einer Stelle den Code aendern, wenn ich meine alert() oder eher confirm() Messages projektweise durch huebschere ersetzen will.
          "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

          Kommentar


          • #6
            Mit prototype funktioniert das ganz hier nicht, aber durchaus so:
            Code:
            window.alert = function(msg) {
                return confirm(msg);
            }
            Relativ sinnlos das Beispiel. Aber auch beim Einsetzen einer benutzerdefinierten Box wäre es relativ sinnlos. Da sollte man besser eine eigene Klasse oder noch besser ein eigenes Literal schreiben.
            Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

            Kommentar


            • #7
              Zitat von Manko10 Beitrag anzeigen
              Da sollte man besser eine eigene Klasse oder noch besser ein eigenes Literal schreiben.
              Leg mal vor
              "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

              Kommentar


              • #8
                Zitat von Manko10 Beitrag anzeigen
                Da sollte man besser eine eigene Klasse oder noch besser ein eigenes Literal schreiben.
                Objektliterale kenn ich ja. Aber was für ein Literal meinst Du hier?

                Kommentar


                • #9
                  Was ein Literal ist und wie es aussieht, wisst ihr doch, oder?
                  Ich meinte einfach, dass man sich sich ein Literal schreibt, dass HTML-Meldungsboxen erstellt, die wie alert-Boxen funktionieren, nur eben komplett anpassbar sind. War einfach darauf gemünzt, dass ich es nicht für sinnvoll halte, alert() zu überschreiben, weil man sich dadurch die Möglichkeit nimmt, dieses später vielleicht doch verwenden zu können. Also statt zu überschreiben lieber parallel eine eigene Klasse oder ein eigenes Literal schreiben.
                  Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                  Kommentar


                  • #10
                    Wie gesagt, ich kenne Objektliterale
                    Code:
                    var obj = { p1: "x1", p2:"x2" }
                    und Nummernliterale, Boolliterale und noch ein paar andere.
                    Aber ich glaub, ich kenne nicht das was Du meinst.

                    Kommentar


                    • #11
                      Ein ganz normales Literal mit Attributen und Methoden.
                      Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                      Kommentar


                      • #12
                        Ah verstehe ich soll noch etwas betteln.
                        Bitte bitte, lieber weiser Manko10, erkläre einem Wurm wie mir, was ein Literal ist, das Du meinst.

                        Kommentar


                        • #13
                          Ein ganz normales Literal. Ich weiß nicht, was du für ein Geheimnis daraus machst. Es ist überhaupt nichts besonderes dabei.

                          Ein mögliches Beispiel wäre
                          Code:
                          var Popup = {
                              setPopupText : function(text) {
                                  // xyz
                              },
                              
                              showPopup : function(type) {
                                  // abc
                              }
                          };
                          
                          Popup.setPopupText('bla');
                          Popup.showPopup('asdfghjklöä');
                          Ein ganz normales Literal, dessen Methoden man selbst programmiert.
                          Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                          Kommentar


                          • #14
                            Tu halt nicht so schlau und lass Dich dreimal bitten. :kopfschüttel:

                            Kommentar


                            • #15
                              Ich wollte eigentlich gar nichts Besonderes einbringen. Nur, dass man window.alert() nicht überschreiben sollte. Stattdessen sollte man eine eigene Klasse schreiben, die parallel zu window.alert() existiert. Da man von einer Klasse jedoch zunächst Instanzen erstellen muss, habe ich vorgeschlagen, ein Literal statt einer Klasse zu verwenden. Wenn ich gewusst hätte, dass jemand etwas Großartiges dahinter vermutet, hätte ich es lieber gar nicht erst geschrieben.
                              Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                              Kommentar

                              Lädt...
                              X