Tinymce将标题样式应用于整个段落,而不仅仅是选定的文本

时间:2012-09-24 10:28:23

标签: tinymce

我刚刚注意到TinyMCE编辑器的烦人行为。当我写完文章的几段时,我想选择其中一些并使其成为标题(标题2样式),整个文本获得标题样式,而不仅仅是我选择的文本。 / p>

当我想应用粗体时,这种情况不会发生 - 在这种情况下,它会按预期工作;只有选定的文字变为粗体。

如何更改此行为?我知道有HTML模式我可以更改样式,但我担心我的客户不熟悉HTML并且他们想要使用visual仅限模式。

3 个答案:

答案 0 :(得分:4)

我想这是因为h2-tag通常无效作为段落的子节点。 您可以尝试根据需要调整tinymce配置参数valid_children

答案 1 :(得分:2)

这是TinyMCE的原生行为,无法更改。

答案 2 :(得分:1)

这是我找到的解决方法。对我很有用

tinyMCE.PluginManager.add('FormatingToolbarButtons', function (editor, url) {
['pre', 'p', 'code', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'].forEach(function (name) {
    editor.addButton("style-" + name, {
        tooltip: "Toggle " + name,
        text: name.toUpperCase(),
        onClick: function () {
            if (this.active()) {
                editor.execCommand('mceToggleFormat', false, name);
                this.active(false)
            }
            else {
                editor.selection.setContent('<' + name + '>' + editor.selection.getContent() + '</' + name + '>');
                this.active(true)
            }
        },
        onPostRender: function () {
            var self = this, setup = function () {
                editor.formatter.formatChanged(name, function (state) {
                    self.active(state);
                });
            };
            editor.formatter ? setup() : editor.on('init', setup);
        }
    })
});

});