6

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

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

2 回答 2

4

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

插入:

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

your_method()现在可以在 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. 唯一的麻烦是它只能由一个插件添加(因为最后一个调用总是覆盖前一个)。

于 2014-01-12T01:27:27.867 回答
2

在 roj 的原始答案中使用 this.opts 是个好主意。应该可以像这样保留旧的回调函数:

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

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

            if (oldKeydownCallback)
                oldKeydownCallback();
        }
    }
}

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

于 2015-05-05T12:01:19.190 回答