2013-07-30 7 views
6

Ich möchte ein Plugin für den redactor.js WYSIWYG-Editor erstellen, aber ich finde keine Möglichkeit, Redactor-Callbacks von meinem Plugin zu abonnieren. Ich muss keydownCallback und autosaveCallback verwenden.Callbacks auf einem Plugin für redactor.js abonnieren

RedactorPlugins.myPlugin = { 
init: function() 
{ 
    //Code 
} 
} 

Antwort

4

Ich ging tatsächlich mit der Definition des Plugins & mit dem Rückruf, um es aufzurufen; Dies ermöglicht den Aufruf mehrerer Funktionen/Plugins vom Callback und fühlt sich auch wie der beabsichtigte Ansatz an.

Plugin:

RedactorPlugins.advanced = { 
    your_method: function() { 
     // Add code here… 
    } 
} 

your_method() ist jetzt auf dem Redaktor Objekt & einfach aufrufbar durch die folgende Liste:

Redactor Aufruf:

$('#redactor').redactor({ 
    keydownCallback: function() { 
     this.your_method(); 

     // Additional keyDownCallbacks: 
     this.another_method(); 
     this.yet_another_method(); 
    } 
}); 

Ursprüngliche Antwort:

Ich weiß, dass es spät ist, aber auf dieses mir selbst kam an diesem Abend.

Das ist für mich gearbeitet:

RedactorPlugins.advanced = { 
    init: function() { 
     this.opts.keydownCallback = function(e) { 
      // Add code here… 
     } 
    } 
} 

Es ist einfach die Optionen nennt und fügt die keyDownCallback. Das einzige Problem ist, dass es nur von einem Plugin hinzugefügt werden kann (da das zuletzt aufgerufene immer das vorherige überschreibt).

2

Gute Idee mit this.opts in rojs ursprünglicher Antwort. Es sollte möglich sein, die alte Callback-Funktion wie folgt zu erhalten:

RedactorPlugins.advanced = { 
    init: function() { 
     var oldKeydownCallback = this.opts.keydownCallback; 

     this.opts.keydownCallback = function(e) { 
      // Add code here… 

      if (oldKeydownCallback) 
       oldKeydownCallback(); 
     } 
    } 
} 

Erläuterung: Bezug auf den alten Rückruf wird in oldKeydownCallback aufbewahrt werden, die dann in dem Verschluss und verfügbar in dem eigenen Rückruf enthalten ist, so können Sie einfach Rufen Sie es auf, sobald Ihre eigene Callback-Funktion ihren eigenen Code ausgeführt hat.

Verwandte Themen