当用户点击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>
标签,这不是我想要的。
我阅读了他们的文档,但无法理解如何停止输入按钮的默认操作并编写<br>
标记,而不是将元素包装在<p>
标记中。
有什么想法吗?感谢
答案 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();
}
}
});