Я пишу код в Typcript, и я пытаюсь вставить текст в TinyMCE в указателе курсора. У меня есть выпадающий список с различными строками для вставки, и я хочу вставить их в клик.Потеря выделения при вставке текста в TinyMCE по индексу с закладками
Когда я вызвать эту функцию дважды, атрибут индекса имеет значение -1, так что весь мой текст ereased, кажется, что закладки не выздоравливают выбор правильно:
addCustomTag(tag: string) {
let bm = this._editor.selection.getBookmark(0);
let selector = "[data-mce-type=bookmark]";
let bmElements = this._editor.dom.select(selector);
this._editor.selection.select(bmElements[0]);
this._editor.selection.collapse();
let elementID = "######cursor######";
let cursorPosition = '<span id="' + elementID + '"></span>';
this._editor.selection.setContent(cursorPosition);
let content = this._editor.getContent({ format: "html" });
let index = content.indexOf(cursorPosition);
this._editor.dom.remove(elementID, false);
this._editor.selection.moveToBookmark(bm);
let tagToInsert = '((' + tag + '))';
let bookmark = this._editor.selection.getBookmark(0);
cursorPosition = '<span id="' + bookmark.id + '_start" data-mce-type="bookmark" data-mce-style="overflow:hidden;line-height:0px"></span>';
content = this._editor.getContent({ format: "html" });
let part1 = content.substr(0, index);
let part2 = content.substr(index);
let contentWithString = part1 + tagToInsert + cursorPosition + part2;
this._editor.setContent(contentWithString, ({ format: "raw" }));
this._editor.selection.moveToBookmark(bookmark);
}
Я думаю, что есть проблема с эту строку, но я не знаю, как ее исправить:
this._editor.selection.setContent(cursorPosition);
Помогите мне пожалуйста?
Спасибо по заранее
EDIT:
Я нашел простое решение, чтобы избежать всех моих проблем:
addCustomTag(tag: string) {
this._editor.execCommand('mceInsertContent', false, '((' + tag + '))');
}