在summernote中使用<br/>而不是<p>?

时间:2016-05-12 11:28:51

标签: javascript jquery html5 wysiwyg summernote

当用户点击Enter按钮时,需要在summernote编辑器中使用<br>标记而不是<p>,所以这是我的代码:

var $this = $(this),
    box = $('textarea.CommentsFields');
box.summernote({
    height: 100,
    focus: true,
    toolbar: [
        [ 'all', [ 'bold', 'strikethrough', 'ul', 'ol', 'link' ] ],
        [ 'sided', [ 'fullscreen' ] ]
    ],
    callbacks: {
        onEnter: function(){
            box.summernote('insertNode', document.createTextNode("<br>")); 
            console.log('uiwdbvuwecbweuiuinsjk');
        }
    }
});

我写了一个onEnter事件的自定义回调函数,当用户点击返回按钮时它会引发一个回调,并写下<br>标签,这不是我想要的。

enter image description here

我阅读了他们的文档,但无法理解如何停止输入按钮的默认操作并编写<br>标记,而不是将元素包装在<p>标记中。

有什么想法吗?感谢

6 个答案:

答案 0 :(得分:4)

此代码对我有用:

$("#summernote").on("summernote.enter", function(we, e) {
     $(this).summernote("pasteHTML", "<br><br>");
     e.preventDefault();
});

这将与Enter press事件并更改其默认行为有关,插入<br>而不是新段落。

答案 1 :(得分:1)

保证2个衬板和没有插件

$.summernote.dom.emptyPara = "<div><br></div>"; // js
.note-editor .note-status-output{display:none;} /*css*/

答案 2 :(得分:0)

今天夏天没有办法做你想做的事。您可以检查https://github.com/summernote/summernote/issues/702,因此,唯一的方法是使用固定逻辑为不同的段落样式创建自己的pull-request。

答案 3 :(得分:0)

如果您不想更改或修复summernote库本身,则可以使用shortcut keys添加换行符。

  • 使用Shift + Enter来换行。
  • 使用Enter来更改段落,因为当您按下summernote时,div添加了p / Enter以开始新的一行。

希望这行得通。

答案 4 :(得分:0)

在SummerNote上似乎有at least 10 or so bugs filed修复或计划修复该问题。

幸运的是,您可以通过偷偷摸摸的方式对其进行修复,这对于将来的版本将非常脆弱-因此请谨慎升级。你猴子修补它:

$.summernote.dom.emptyPara = "<div><br/></div>";
box.summernote(options);

第一行是修复程序-猴子补丁。我在第二行中插入了SummerNote进行初始化,只是为了演示您必须在启动SummerNote之前进行Monkey补丁-否则Monkey Patch将不会加入其中,并且您在输入时仍会得到p标签。

答案 5 :(得分:0)

我遇到了这个问题,解决方法如下。

回调中的 onKeydown 函数可以解决您的问题。

示例

$('.textarea-editor').summernote({
  height: 250, // set editor height  
  minHeight: null, // set minimum height of editor  
  maxHeight: null, // set maximum height of editor  
  focus: true, // set focus to editable area after initializing summernote  
  htmlMode: true,
  lineNumbers: true,
  codemirror: { // codemirror options
    theme: 'monokai'
  },
  mode: 'text/html',
  callbacks: {
    onKeydown: function(e) {
      e.stopPropagation();
    }
  }
});