2017-02-21 15 views
0

Я пытаюсь повторно использовать некоторый код для разных типов tinyMCE У меня есть (простой, продвинутый, эксперт ...).Как добавить объявленную функцию в tinymce.init

Для каждого типа у меня есть tinymce.init({ }), и в каждом из них я использую плагин paste с функцией paste_preprocess. Как я использую ту же функцию для всех tinymce.init у меня есть, я попытался объявить свою функцию как нормальный:

function myFunction(pl, o) { ... } 

, а затем использовать его внутри tinynmce.init как это:

tinymce.init({ 
    ... 
    paste_preprocess : myFunction(pl, o) 
}); 

Но это не работает ...

только конфиги я видел, как правило, являются:

tinymce.init({ 
... 
    paste_preprocess: function(pl, o) { ... } 
}); 

так, анонимные функции, я прав?

Есть ли способ достичь этого с заявленной функцией, или это только работает как обычная практика paste_preprocess: function() {}?

Большое спасибо за ваше время.

ответ

0

Фактический параметр конфигурации ожидает анонимную функцию, так что если вы хотите экстернализовать вашу функцию вы могли бы сделать что-то вроде этого:

paste_postprocess: function(editor, fragment) { 
    myFunction(editor, fragment); 
} 

В другом месте вы можете определить свою функцию, которую вы хотите запустить:

function myFunction(editor, fragment) { 
    console.log('myFunction called!'); 
} 

Тогда вы можете поместить реальную логику пасты в myFunction(editor, fragment) и до тех пор, пока эта функция существует на странице во время выполнения, все будет работать.

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

+0

Я обновил свой вопрос, спасибо за ваш ответ! Я предполагаю, что проблема возникает, когда я пытаюсь передать что-то в myFunction (pl, o), возможно, эти объекты существуют только внутри области tinymce.init ({}), и именно поэтому она не работает. – agapitocandemor

+0

@agapitocandemor Смотрите мои правки выше ... –

Смежные вопросы