Как запустить пользовательский метод в плагине Redactor?

Следующий плагин jQuery имеет API, в который вы можете добавлять свои собственные методы.

Вот простой пример.

В примере на этой странице, как мне вызвать функцию your_method?

Они этого не показывают. Все, что я хочу сделать, это поместить кнопку на страницу, а затем, когда эта кнопка будет нажата, вызвать мой собственный пользовательский метод.


person Quad6    schedule 04.01.2013    source источник


Ответы (2)


вы создаете метод инициализации, в котором вы можете создать кнопку на панели инструментов и привязать к ней свой собственный метод плагина:

RedactorPlugins.myPlugin = {

    init: function() {
        this.addBtn('myMethod', 'MyMethod', function(obj) {
            obj.myMethod();
        });
    },

    myMethod: function() {
        // do stuff
    }
}

Надеюсь, поможет

person Alex Ackerman    schedule 04.01.2013
comment
Спасибо, но я действительно не хочу использовать редактор/панель инструментов в этом случае. Я хочу, чтобы на странице была отдельная кнопка («Загрузить»), а затем запускалась функция загрузки из Redactor. - person Quad6; 05.01.2013
comment
поэтому вы хотели бы вызывать fileUpload/imageUpload из-за пределов самого Redactor? - person Alex Ackerman; 05.01.2013
comment
Я не уверен, что он включен в официальный API, но если вы не возражаете против небольшого хака, вы можете скрыть кнопку загрузки на панели инструментов $(a.redactor_btn_file).hide(); и нажмите на него где угодно $(a.redactor_btn_file).click(); некрасиво однако... - person Alex Ackerman; 05.01.2013
comment
Спасибо, да, я хочу вызвать его вне текстового редактора редактора - я хочу использовать крутость функции загрузки. Чтобы дать контекст, это позволяет кому-то загрузить «характерное изображение», поэтому в этом случае нет текстовой области, только поле изображения. - person Quad6; 05.01.2013

Это сработало для меня:

if (!RedactorPlugins) var RedactorPlugins = {};

RedactorPlugins.myPlugin = function() {
    return {
        init: function() {
        },
        myMethod: function() {
            alert ("method");
        }
    };
};

$("#redactor").redactor({
    plugins: ['myPlugin']
});


$("#redactor").redactor("myPlugin.myMethod");

или вы можете добавить его к событию клика на что-то еще

$(".selector").on("click", function(e) {
    $("#redactor").redactor("myPlugin.myMethod");
});
person Roland Szpond    schedule 07.03.2015
comment
$("#redactor").redactor("myPlugin.myMethod"); - это работает для отдельных кнопок, спасибо! - person georgiy.zhuravlev; 23.11.2016