在 summernote 中的自定义工具栏按钮上插入 html 的问题

Issues inserting html on custom toolbar button in summernote

我正在尝试在 summernote 工具栏中添加 2 个自定义按钮,一个用于简单地添加一个换行符,另一个用于插入一些带有小样式的文本。当我使用这些按钮时,它会清除 html,并且不会执行所需的结果(换行符或插入小文本)。如何从工具栏选择中插入 html 并且不改变它?

这是按钮效果图jQuery:

var BR_Button = function (context) {
  var ui = $.summernote.ui;

  // create button
  var button = ui.button({
    contents: 'BR',
    tooltip: 'Line Break',
    click: function () {
      // invoke insertText method with 'hello' on editor module.
      context.invoke('editor.insertText', '<br/>');
    }
  });

  return button.render();   // return button as jquery object
}

var Small_Button = function (context) {
  var ui = $.summernote.ui;

  // create button
  var button = ui.button({
    contents: 'small',
    tooltip: 'Small Style Emphasis',
    click: function () {
      // invoke insertText method with 'hello' on editor module.
      context.invoke('editor.insertText', '<small>small text</small>');
    }
  });

  return button.render();   // return button as jquery object
}

以及工具栏自定义代码:

$('#id_text').summernote({
  toolbar: [
  ['paragraph', ['paragraph']],
  ['fontsize', ['style','fontname','fontsize','height']],
  ['style', ['bold', 'italic', 'underline', 'clear']],
  ['font', ['small','strikethrough', 'superscript', 'subscript']],
  ['color', ['color']],
  ['para', ['BR','ul', 'ol',]],
  ['insert', ['table','link','picture','video','hr']],
  ['codeview', ['codeview']],
  ],
  focus: true,
  buttons: {
    small: Small_Button,
    BR: BR_Button
    }
  });

问题是当我点击工具栏中的 BR 按钮时,它插入了
,但没有给我一个实际的换行符..

不使用 'editor.insertText',而是使用 'editor.pasteHTML',这允许插入 html 而不是强制使用安全字符。

var BR_Button = 函数(上下文){ var ui = $.summernote.ui;

// 创建按钮 var 按钮 = ui.button({ 内容:'BR', 工具提示:'Insert Line Break', 点击:功能(){ // 在编辑器模块上使用 'hello' 调用 insertText 方法。 context.invoke('editor.pasteHTML', '
'); } });