是否可以为多实例tinyMCE的每个实例定义一个force_root_block?

时间:2019-02-05 06:58:16

标签: javascript tinymce

我目前正在寻找一种方法来在单个页面上设置每个tinymce实例,以使用不同的force_root_block元素。 例如:我在页面上渲染了3个实例。第一个应该是h1,第二个h2和第三个p。

正如我在tinymce文档中发现的那样,我可以在initnet()时使用tinymce的forced_root_block。但是,如果按以下方式进行初始化,则将h1作为所有实例的根标记。

是否可以为每个实例定义此参数?例如在setup-callback中?

感谢您的帮助。

tinyMCE.init({
    //...
    mode: 'textareas',
    editor_selector: 'article_editor',
    content_css: '/editorcss/',
    forced_root_block: 'h1',
    //...
});

1 个答案:

答案 0 :(得分:0)

我为我找到了解决方案。 可以在设置参数中注册一个回调函数。对于tinymce的每个实例,这称为一次。 在此回调中,可以覆盖editor.settings。因此,我只是从元素中读取块属性,然后在设置中覆盖这些信息。

tinyMCE.init({
    //...
    mode: 'textareas',
    editor_selector: 'article_editor',
    setup: function(ed) {
        /**
        * We are looking for textareas != basetext and setup their block-tag and attributes
        **/
        var block_type  = $('#' + ed.id).data('block-type');
        var block_class = $('#' + ed.id).data('block-class');
        var block_style = $('#' + ed.id).data('block-style');

        if (block_type != null) {
            ed.settings.forced_root_block = block_type;
            ed.settings.forced_root_block_attrs = {
                'class': block_class ? block_class : '',
                'style': block_style ? block_style : ''
            }
        }
   //...