Я использую TinyMCE 4.0.12 и занимаюсь динамическим встроенным редактированием. Потребовались некоторые исследования, но теперь у меня все работает. Моя единственная проблема заключается в том, что для отображения панели инструментов TinyMCE требуется 2 клика. Вот как выглядит мой упрощенный вид (выглядит html):
<script src="/Scripts/jquery-1.8.2.js"></script>
<script src="/Scripts/tinymce/tinymce.min.js"></script>
<script src="/Scripts/quantum.topics.js"></script>
<h1 id="title">@Model.Title</h1>
<div id="body">
<p>@Model.Body</p>
<p>@Model.Score</p>
<p>@Model.CreatedBy</p>
<p>@Model.CreatedDate</p>
</div>
Мой JQuery (quantum.topics.js):
var tinyMCEconfigs = [
{
theme: "modern",
mode: "none",
language: "en",
inline: true,
toolbar: "undo redo",
menubar: false,
browser_spellcheck: true
},
{
theme: "modern",
mode: "none",
language: "en",
inline: true,
menubar: false,
browser_spellcheck: true,
plugins: [
"link"
],
toolbar: "undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link"
}
];
function addtinyMCE(type, selector) {
//Only save and remove the current editor if we're active and we're switching controls
if (tinymce.activeEditor && selector != tinymce.activeEditor.id) {
tinymce.triggerSave();
tinymce.execCommand('mceRemoveEditor', true, tinymce.activeEditor.id);
}
//Prevent adding the editor over and over
if (!tinymce.activeEditor) {
tinymce.settings = tinyMCEconfigs[type];
tinymce.execCommand('mceAddEditor', false, selector);
//tinymce.execCommand('mceFocus', false, selector);
tinymce.activeEditor.execCommand('mceRepaint');
}
}
$(function () {
$('#title').click(function () {
addtinyMCE(0, 'title');
});
$('#body').click(function () {
addtinyMCE(1, 'body');
});
});
Я пытался использовать mceFocus, я пытался передать «true» для вызовов mceAddEditor и пытался использовать mceRepaint. Кажется, ни один из них не отображает элементы управления, даже если он находится в режиме редактирования. После второго щелчка (даже если ни один из mce-кодов не выполняется) появляются элементы управления. Кажется, это связано с фокусом курсора, но я не могу понять, как это исправить. Если ничего другого, мой пример выше может помочь тому, кто застрял.