Member 11072126 Ответов: 0

Как удалить лишнее HTML форматирование после вставки контента в Редактор kendo


Требование:
Существует элемент управления textarea (name: txtFName). Когда пользователи введут там какое-то значение и нажмут на кнопку, то редактор Kendo должен открыться, и этот текст из "txtFName" должен быть вставлен в Редактор Kendo, под "

...

" метка. Курсор должен продолжать мигать сразу после вставленного текста.

Проблема:
Данные из "txtFName" вставляются в Редактор kendo, но курсор мигает на следующей строке, а не после вставленного текста. Когда я отлаживал, то увидел, что после вставленного текста добавляется дополнительный тег "div". Если бы я мог удалить тег "div" или установить курсор сразу после вставленного текста, то это было бы идеально.!!!

Что я уже пробовал:

Я пытался несколькими способами:

1. Подписавшись событие вставки и удаления "див" теги от туда -
function txtSelectedTemplatePasteCleanUp(e)
{
    try {
        e.innerHTML = e.innerHTML.replace(/<\/?div[^>]*>/g, "");
    }
    catch (oErr) {
        CHW.HandleError(oErr, "", arguments);
    }
}

Затем подписавшись на вышеприведенный метод, как показано ниже:
$("#txtSelectedTemplate").kendoEditor({
        tools: [
        ],
        select: function (e) {
            txtSelectedTemplateClick(e);
        },
        keydown: function (e) {
            txtSelectedTemplateKeyUp(e);
        },
        paste: function (e) {
            txtSelectedTemplatePasteCleanUp(e);
        }
    });
kEditor = $("#txtSelectedTemplate").data("kendoEditor");

Но, таким образом, он не был вызван. Итак, я снова вызвал его OnLoad(), как показано ниже:
txtSelectedTemplate.focus();
        
txtSelectedTemplatePasteCleanUp(kEditor.body);


2. Путем расчета текущей позиции курсора и установив его через редактор кендо функций, связанных с -
this.moveCaret = function (position) {
        var range = widget.editor.getRange();
        if (range.collapsed) {
            var textNode = widget.editor.body.firstChild;
            range.setStart(textNode, position);
            range.collapse(true); // collapse to start
            widget.editor.selectRange(range);
        }
    }

Затем называя его как ниже:
txtSelectedTemplate.focus();
var pp = txtSelectedTemplate.GetCursorPosition();
txtSelectedTemplate.moveCaret(pp);


Вышеописанные два приема я реализовал после вставки текста в Редактор.

Пожалуйста, помогите мне установить курсор после окончания текста и предотвратить создание дополнительных HTML-элементов.

Примечание: пожалуйста, спросите меня, если вам нужны дополнительные разъяснения по этой проблеме.

Спасибо,
Агниб

Richard Deeming

Возможно, Вам повезет больше, если вы разместите свой вопрос на форумах поддержки Telerik:
Редактор в Kendo UI для форумов jQuery - Telerik[^]

0 Ответов