Ergebnis 1 bis 9 von 9
  1. #1
    Praise the Sun! Avatar von SAE
    Registriert seit
    02.02.2010
    Beiträge
    2.771

    Standard Warnung bei Formularverlassung im Forum

    Hi, hab mal ne Frage zu dem System welches hier im Forum verwendet wird um zu Warnen, wenn man ein Fenster verlassen möchte in dem man Formulareingaben getätigt hat.

    Wollte jetzt mal fragen ob das eine Funktion des CKEditors ist oder ob die über ein eigenes Javascript/jQuery kommt. Bin nämlich gerade an einem ähnlichen Problem und Google hat bisher keine brauchbaren Ergebnisse ausgespuckt.

    Achja wo wir schon dabei sind. Wie bekomme ich die Toolbar des CKEditors inkludiert. Ich bekomme irgendwie nur das Textfeld (Alle Browser), aber das wars auch schon. Auch hier hat weder die CK-Seite noch Google bisher abhilfe geschaffen.

  2. #2
    Praise the Sun! Avatar von SAE
    Registriert seit
    02.02.2010
    Beiträge
    2.771

    Standard

    Ok, das mit dem ckeditor hab ich gelöst. Es war ein Berechtigungsproblem und ein typo (':' statt ';')

    Woher die Warnung beim Verlassen eines Formulars kommt würde mich dennoch interessieren.

  3. #3
    Movert
    Gast

    Standard

    Das müsste Browser anbhängig sein. Bei Opera hab ich keine Wanung, bei Firefox schon. Daher denke ich, dass dies an Firefox oder deinem Browser liegt.
    Soweit ich weiß ist das auch keine vBulletin funktion.

  4. #4
    Praise the Sun! Avatar von SAE
    Registriert seit
    02.02.2010
    Beiträge
    2.771

    Standard

    Browser-Abhängigkeit würde ich sagen: Jein.

    Es kommt auf jedenfall von der Seite funktioniert wohl aber nicht in allen Browsern (typisches Javascript-Problem).

    Der Editor ist der CK-Editor. Jetzt ist die Frage wurde das Script selbst geschrieben oder ist das CKE-Funktion.

    Richtet sich im Grunde an den Kopf dahinter.

  5. #5
    Bleibt zu Hause Avatar von alceleniel
    Registriert seit
    20.03.2006
    Ort
    Urban Jungle
    Beiträge
    32.341

    Standard

    Bei Facebook bekomme ich die gleiche Meldung (FF9.0.1)

  6. #6
    Movert
    Gast

    Standard

    Es ist KEINE vBulletin funktion, das ist klar. Hab ich auch schonmal gesagt. Ich denke, dass dies Firefox ist. Wenn firefox erkennt, dass man sich auf einer Website befindet, in welcher man etwas in ein Formular oder einer Input Box gemacht hat, kommt eben diese Sicherheitsabfrage. Kein Javaskript von vB, das müsste ich sonst wissen.

  7. #7
    Praise the Sun! Avatar von SAE
    Registriert seit
    02.02.2010
    Beiträge
    2.771

    Standard

    Nein, ist keine Browser-Eigene Funktion. Kann man ja ganz einfach Testen indem man mal ne simple HTML-Seite mit Formular bastelt. (Beispiel auf selfhtml). Daher kommt das Script mit Sicherheit von der Seite (z.B. Facebook oder eben GGP)
    Die Frage ist: Handelt es sich dabei um ein Plugin des CKEditors ODER ist es ein zusätzliches Javascript/jQuery.

    Wer hat denn den neuen Editor implementiert? Vielleicht kann der/die mir ja weiterhelfen.

  8. #8
    Praise the Sun! Avatar von SAE
    Registriert seit
    02.02.2010
    Beiträge
    2.771

    Standard

    Ok hat sich erledigt, ich hab ne Lösung gefunden, naja fast. Aber die Lösung ist zumindest nicht mehr allzu weit entfernt. Muss jetzt nur noch herausfinden, wie ich meinem Script sage, dass er dem Save-Button zuhören soll.

    Für den Fall, das hier mal nen Google-Sucher vorbeikommt:

    Code:
    //First we set our test-variable to false. We don't want to bother the user, when he's done nothing.
      var warn_on_leave = false;
    
    //Now we integrate our CKEditor after the page is loaded. 
      window.onload = function() { 
          CKEDITOR.replace('ckeditor'); 
    
    //We want to warn the user if he has made any changes. He has to press keys to do that. So we listen if there are any keys pressed.       
          CKEDITOR.instances['ckeditor'].on('key', function() {
            warn_on_leave = true;
          });
          
    //Doesn't work that way, I'm working on a solution right now.
          CKEDITOR.instances['ckeditor'].on('save', function() {
            warn_on_leave = false;
          });    
      }
    
    //Now if the page is left in any way (Backspace, Save, Link, Close, etc.) we check the warn_on_leave value and either print a message or do nothing. 
        window.onbeforeunload = function() {
          if(warn_on_leave) {
            return 'Achtung! Es wurde nicht gespeichert! Alle Eingaben gehen verloren';
          }
        }

  9. #9
    Praise the Sun! Avatar von SAE
    Registriert seit
    02.02.2010
    Beiträge
    2.771

    Standard

    So, irgendwie ist das ja nicht das richtige Forum dafür, aber wenn doch mal einer mit ner Google-Suche vorbeikommt:

    Meine Lösung des Problems:

    Code:
    $(document).ready(function() { 
      /* Our ckeck-variable which tells us if we need to warn the user before leave or not
      initialized with 'false' so the don't bother the user when we don't have to. */
      var warn_on_leave = false;
    
      /* Here we check if the user has made any 'changes' actually we just check if he has pressed a key in ckeditor.
      'cause you have to do that it's a proper solution. 
      This Code is NOT written in jquery, 'cause I haven't found a proper way to combine jQuery and CKEditor eventhandling 
      The first line is an event-listener which is called everytime we change our focus (i.e. click in our ckeditor, a link, etc) 
      The second 'CKEDITOR.currentInstance' is a method which returns our currently focused element. Here we listen if the user presses a key.
      The 'try...catch' Block is needed so we don't produce an error when our focus is 'null'. */
      CKEDITOR.on('currentInstance', function() {               
        try {
          CKEDITOR.currentInstance.on('key', function() {       
            warn_on_leave = true;
          });
        } catch (err) { }                                       
      });
      
    
      // Wen don't want to annoy the user with a popup, when he's about to save his/her changes
      $(document.activeElement).submit(function() {
        warn_on_leave = false;
      });
    
      // Finally we check if we need to show our popup or not
      $(window).bind('beforeunload', function() {
        if(warn_on_leave) {
          return 'Achtung! Es wurde nicht gespeichert! Alle Eingaben gehen verloren!';
        }
      });
    });
    Auf html-Seite muss man noch jQuery, CKEDITOR und einen Submit-Button mit dem name-Attribut name="submit" einbinden.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •