我剛剛注意到TinyMCE編輯器令人討厭的行爲。當我寫了幾段文字,我想選擇其中的一部分並將其設置爲標題(標題2樣式)時,整個文本將獲得該標題樣式,而不僅僅是我選擇的文本。Tinymce將標題樣式應用於整個段落,而不僅僅是選定的文本
這不會發生,當我想應用粗體 - 在這種情況下,它按預期工作;只有選定的文本變爲粗體。
我該如何改變這種行爲?我知道HTML模式可以改變風格,但我擔心我的客戶不太熟悉HTML,他們只想使用視覺模式。
我剛剛注意到TinyMCE編輯器令人討厭的行爲。當我寫了幾段文字,我想選擇其中的一部分並將其設置爲標題(標題2樣式)時,整個文本將獲得該標題樣式,而不僅僅是我選擇的文本。Tinymce將標題樣式應用於整個段落,而不僅僅是選定的文本
這不會發生,當我想應用粗體 - 在這種情況下,它按預期工作;只有選定的文本變爲粗體。
我該如何改變這種行爲?我知道HTML模式可以改變風格,但我擔心我的客戶不太熟悉HTML,他們只想使用視覺模式。
這是TinyMCE的原生行爲,不能更改。
我想這是因爲h2標籤通常作爲段落的子節點無效。 您可以嘗試根據需要調整tinymce配置參數valid_children。
這是我找到的解決方法。對我很好用
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);
}
})
});
});
您必須將標題的文本移動到它自己的段落中,然後才能打開標題樣式。 – Archonic