2013-07-30 14 views
6

redactor.js WYSIWYGエディタのプラグインを作成したいのですが、私のプラグインからredactorコールバックを購読する方法が見つかりません。 keydownCallbackautosaveCallbackを使用する必要があります。redactor.jsのプラグインでコールバックを購読する

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

答えて

4

私は実際にコールバックを使用してプラグイン&を定義することに行きました。これにより、コールバックから複数の関数/プラグインを呼び出すことができ、また意図したアプローチのように感じることができます。

プラグイン:

のredactorコール:

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

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

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

your_method()は、以下を通じて、単純に呼び出し可能なのredactorオブジェクト&で使用できるようになりました

オリジナルの回答:

私はそれが遅いと知っていますが、この夜私の自己を見つけました。

これが私の仕事:

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

をそれは単にオプションを呼び出し、keyDownCallbackを追加します。唯一の問題は、1つのプラグインでしか追加できないということです(呼び出された最後のものが常に前のものを上書きします)。

2

rojの元の答えでthis.optsを使った素晴らしいアイデアです。ただ古いコールバックへの参照がoldKeydownCallbackに保存されます、その後閉鎖に含まれており、独自のコールバック内で提供されていますので、次のことができます。

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

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

      if (oldKeydownCallback) 
       oldKeydownCallback(); 
     } 
    } 
} 

説明:このような古いコールバック機能を維持することが可能です独自のコールバック関数が独自のコードの実行を終了したら、それを呼び出します。

関連する問題