我目前正在寻找一种方法来在单个页面上设置每个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',
//...
});
答案 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 : ''
}
}
//...