2016-04-11 2 views
0

У меня есть текстовая область и список с некоторыми значениями. Когда пользователь помещает курсор в любую область текстовой области и выбирает значение из списка, он должен быть введен в определенную позицию, в которую помещен курсор.Вставить текст в позицию курсора в редакторе wysihtml5

Я пробовал некоторое решение, где текст всегда добавляется в конце. Невозможно добавить в позицию курсора.

ответ

0

В wysihtml редакторе есть команда с именем insertHTML что shoult сделать именно это: вводить любой код, вы хотите в позиции курсора/выбор (https://github.com/Voog/wysihtml/wiki/Supported-Commands#inserthtml-):

editorInstance.composer.commands.exec("insertHTML", "<blockquote>foobar</blockquote>"); 

Если панель инструментов теряет фокус на редактируемой области (например, выберите выпадающий может сделать или вход), вы должны сохранить выбор на открытии панели инструментов и восстановить выбор перед выполнением команды с

var b = editorInstance.composer.selection.getBookmark(); 

и

var editorInstance.composer.selection.setBookmark(b); 

Как здесь делается: https://github.com/Voog/wysihtml/blob/master/examples/wotoolbar.html#L351

0

для самозагрузки-wysihtml5 использовать следующую функцию она работает для меня:

<script> 

    $(function() { 
    // Replace the <textarea id="editor1"> with a CKEditor 
    // instance, using default configuration. 
    // CKEDITOR.replace('editor1'); 
    //bootstrap WYSIHTML5 - text editor 
    $(".textarea").wysihtml5(); 

    }); 



function injectString(str){ 
    var sel=frames[0].getSelection(); 
    var nd=sel.anchorNode; 
    var txt=nd.data+''; 
    var pos=sel.anchorOffset||0; 
    sel.anchorNode.data=txt.slice(0,pos)+str+txt.slice(pos); 
}</script> 

использовать как этот

<button id="name" data-wysihtml5-command="foreFrac" onclick="injectString('{name}')" type="button" class="btn btn-block btn-success btn-lg">Name </button> 
Смежные вопросы