在redactor.js的插件上订阅回调

时间:2013-07-30 03:35:39

标签: javascript plugins redactor

我想为redactor.js WYSIWYG编辑器创建一个插件,但我找不到从我的插件订阅redactor回调的方法。我需要使用keydownCallbackautosaveCallback

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

2 个答案:

答案 0 :(得分:4)

我实际上是在定义插件&使用回调来调用它;这允许从回调中调用多个函数/插件,并且感觉就像预期的方法。

<强>插件:

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

your_method()现在可用于编辑器对象&amp;只需通过以下方式调用:

Redactor电话:

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

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

原始回答:

我知道现在已经很晚了,但今天晚上遇到了这个问题。

这对我有用:

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

它只是调用选项并添加keyDownCallback。唯一的麻烦是它只能通过一个插件添加(因为被调用的最后一个总是覆盖前一个插件)。

答案 1 :(得分:2)

很好的想法,这个。在roj的原始答案中。应该可以保留旧的回调函数,如下所示:

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

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

            if (oldKeydownCallback)
                oldKeydownCallback();
        }
    }
}

说明:旧回调的引用将保留在oldKeydownCallback中,然后将其包含在闭包中并在您自己的回调中可用,因此您可以在自己的回调函数执行完自己的代码后调用它。