У меня здесь jsFiddle → http://jsfiddle.net/cm910t89/2/
Я создал пользовательскую кнопку в Summernote WYSIWYG Editor, и я не могу заставить свою функцию нормально работать внутри плагина.
Я хочу, чтобы пользователь мог выделить (или выбрать с помощью своего курсора) любой текст в редакторе, а затем щелкнуть по моей пользовательской кнопке, которая будет обертывать выделенный текст в теге span
специальным классом 'snote',
Сейчас я могу обернуть выбранный в теге span этот класс, но все форматирование в редакторе стирается.
Может ли кто-нибудь помочь, чтобы выделенный текст был обернут в тег span, и форматирование остается тем же?
jsFiddle → http://jsfiddle.net/cm910t89/2/
$(document).ready(function() {
var editor = $('#summernote');
editor.summernote({
height: ($(window).height() - 250),
focus: false,
toolbar: [
['style', ['bold', 'italic', 'underline', 'clear']],
['font', ['strikethrough']],
['fontsize', ['fontsize']],
['para', ['ul', 'ol', 'paragraph']],
['height', ['height']],
['view', ['fullscreen', 'codeview']],
],
oninit: function() {
// Add "open" - "save" buttons
var noteBtn = '<button id="makeSnote" type="button" class="btn btn-default btn-sm btn-small" title="Identify a music note" data-event="something" tabindex="-1"><i class="fa fa-music"></i></button>';
var fileGroup = '<div class="note-file btn-group">' + noteBtn + '</div>';
$(fileGroup).appendTo($('.note-toolbar'));
// Button tooltips
$('#makeSnote').tooltip({container: 'body', placement: 'bottom'});
// Button events
$('#makeSnote').click(function(event) {
var highlight = window.getSelection(),
spn = '<span class="snote" style="color:blue;">' + highlight + '</span>',
text = $('.note-editable').children('p').text(),
range = highlight.getRangeAt(0),
startText = text.substring(0, range.startOffset),
endText = text.substring(range.endOffset, text.length);
$('.note-editable').html(startText + spn + endText);
});
},
});