我刚刚注意到 TinyMCE 编辑器的一个令人讨厌的行为。当我写了几段文字时,我想选择其中的一些并使其成为标题(标题 2 样式),整个文本都会获得该标题样式,而不仅仅是我选择的文本。
当我想应用粗体时,这不会发生 - 在这种情况下,它可以按预期工作;只有选定的文本变为粗体。
我怎样才能改变这种行为?我知道有 HTML 模式可以更改样式,但我担心我的客户对 HTML 不太熟悉,他们只想使用可视模式。
我刚刚注意到 TinyMCE 编辑器的一个令人讨厌的行为。当我写了几段文字时,我想选择其中的一些并使其成为标题(标题 2 样式),整个文本都会获得该标题样式,而不仅仅是我选择的文本。
当我想应用粗体时,这不会发生 - 在这种情况下,它可以按预期工作;只有选定的文本变为粗体。
我怎样才能改变这种行为?我知道有 HTML 模式可以更改样式,但我担心我的客户对 HTML 不太熟悉,他们只想使用可视模式。
我猜这是因为 h2-tags 通常不能作为段落的子节点。您可以根据需要尝试调整tinymce 配置参数valid_children。
这是 TinyMCE 的本机行为,无法更改。
这是我找到的解决方法。对我有用
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);
}
})
});
});
你可以试试下面:
https://www.tiny.cloud/docs-3x/reference/Configuration3x/Configuration3x@force_br_newlines/
试试看force_p_newlines : true,
它是否有效。