Вставить HTML / Text @ Cursor Inline Div (NicEdit) - PullRequest
0 голосов
/ 11 июля 2011

Так что я не нашел другого программного обеспечения для редактирования in-div-файлов jquery / javascript, кроме NicEdit. Я хочу добавить вкладку или любой другой HTML-код в div, где находится мой курсор. Я наткнулся на некоторый код здесь:

function insertAtCursor(editor, value){
    var editor = nicEditors.findEditor(editor);
    var range = editor.getRng();                    
    var editorField = editor.selElm();
    editorField.nodeValue = editorField.nodeValue.substring(0, range.startOffset) +
                            value +
                            editorField.nodeValue.substring(range.endOffset, editorField.nodeValue.length);

}

ОДНАКО, он не работает, если курсор находится точно на левой стороне (без ввода текста, справа в начале строки) (nodeValue становится нулевым). Кроме того, при вводе текста курсор перемещается в нескольких браузерах (сравнивая Chrome и Firefox).

Существует ли WYSIWYG, который поддерживает встроенные вкладки (кнопка вкладки) или ввод текста с помощью элементов Div (или текстовых областей, имитирующих элементы Div?) Почему это так трудно найти?

Ответы [ 5 ]

0 голосов
/ 06 октября 2015

Сначала проверьте нулевой узел, затем установите этот конкретный узел

if (editorField.nodeValue == null) {
    editorField.setContent(DataFieldValue);
}
0 голосов
/ 27 октября 2014

Сначала проверьте наличие нулевого узла, затем установите этот конкретный узел (значение editorField)

    var editor = nicEditors.findEditor("cpMain_area2");
    var range = editor.getRng();            
    var editorField = editor.selElm();
   if (editorField.nodeValue == null) {
        editorField.setContent('<DIV><'+  A +'></DIV>')
         }
    else {

        editorField.nodeValue = editorField.nodeValue.substring(0, range.startOffset) + A + editorField.nodeValue.substring(range.endOffset, editorField.nodeValue.length);
       }
0 голосов
/ 13 сентября 2012

Следующий код решает проблему с добавлением элементов div или других html-элементов, а также с отсутствием текста в редакторе:

if(editorField.nodeValue==null){
  editor.setContent('<strong>Your content</strong>');
}else{        
  editorField.nodeValue = editorField.nodeValue.substring(0, range.startOffset) +
                          '<strong>Your content</strong>' +
                          editorField.nodeValue.substring(range.endOffset, editorField.nodeValue.length);
  editor.setContent(editorField.nodeValue);
}
0 голосов
/ 13 октября 2012

Смотрите мой ответ ЗДЕСЬ . Это плагин, который я создал для вставки HTML в позицию курсора, и он хорошо работает для меня.

0 голосов
/ 16 июля 2011

Лучший встроенный редактор, который я нашел, - это WYSIWYG от Google, который является частью их библиотеки JavaScript с открытым исходным кодом под названием Closure Library: http://code.google.com/intl/sv-SE/closure/library/

К сожалению, его было не очень легко настроить и не так хорошо задокументировано, но если вам удастся его запустить и запустить, он имеет примерно те же функции, что и редактор Gmail или редактор Сайтов Google, имеет отличную совместимость с браузером и хорошая встроенная функция.

...