基于jquery的bootstrap在线文本编辑器插件Summernote
Summernote是一个基于jquery的bootstrap超级简单WYSIWYG在线编辑器。Summernote非常的轻量级,大小只有30KB,支持Safari,Chrome,Firefox、Opera、Internet Explorer 9 +(IE8支持即将到来)。
特点:
世界上最好的WYSIWYG在线编辑器
极易安装
开源
自定义初化选项
支持快捷键
适用于各种后端程序言语
使用方法
使用html5文档
1 <!DOCTYPE html> 2 <html> 3 ... 4 </html>
引入核心文件,Summernote需要几个JS库的支持,所以得先引入其它库
<!-- include libries(jQuery, bootstrap, fontawesome) --> <script src="//code.jquery.com/jquery-1.9.1.min.js"></script> <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css"> <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.1/js/bootstrap.min.js"></script> <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css"> <!-- include summernote css/js--> <link href="summernote.css" /> <script src="summernote.min.js"></script>
写入html,只需加入一个DIV元素,写上ID
<div id="summernote">Hello Summernote</div>
写入JS初始化插件
$(document).ready(function() {
$('#summernote').summernote();
});
API
初始化Summernote
$('.summernote').summernote();
使用参数初始化
设定高度与焦点
1 $('.summernote').summernote({ 2 height: 300, // set editor height 3 minHeight: null, // set minimum height of editor 4 maxHeight: null, // set maximum height of editor 5 focus: true, // set focus to editable area after initializing summernote});
设定高度后,如果内容高度超过设定高度将出现滚动条,如果没有设定高度则一直往下挣开。设定focus为true时,打开页面后焦点定位到编辑器中。
自定义工具栏
1 $('.summernote').summernote({ 2 toolbar: [ 3 //[groupname, [button list]] 4 ['style', ['bold', 'italic', 'underline', 'clear']], 5 ['font', ['strikethrough']], 6 ['fontsize', ['fontsize']], 7 ['color', ['color']], 8 ['para', ['ul', 'ol', 'paragraph']], 9 ['height', ['height']], 10 ] 11 });
预设参数
类型 | 按钮id | 方法 |
---|---|---|
Insert |
picture |
Insert a picture |
link |
Insert a hyperlink |
|
video |
Insert a video |
|
table |
Insert a table |
|
hr |
Insert a horizontal rule |
|
Style |
style |
Format selected block |
fontname |
Set font family |
|
fontsize |
Set font size |
|
color |
Set foreground and background color |
|
bold |
Toggle weight |
|
italic |
Toggle italic |
|
underline |
Toggle underline |
|
strikethrough |
Toggle strikethrough |
|
clear |
Clearing all styles |
|
Layout |
ul |
Make an un-ordered list |
ol |
Make an ordered list |
|
paragraph |
Set text alignment |
|
height |
Set height of text |
|
Misc |
fullscreen |
Toggle fullscreen editing mode |
codeview |
Toggle wysiwyg and html editing mode |
|
undo |
Undo |
|
redo |
Redo |
|
help |
Show help dialog |
极简模式Air-mode
1 $('.summernote').summernote({ 2 airPopover: [ 3 ['color', ['color']], 4 ['font', ['bold', 'underline', 'clear']], 5 ['para', ['ul', 'paragraph']], 6 ['table', ['table']], 7 ['insert', ['link', 'picture']] 8 ] 9 });
释放Summernote
$('.summernote').destroy();
取值与赋值
//取值
var sHTML = $('.summernote').code();
//同一页面多个summernote时,取第二个的值
var sHTML = $('.summernote').eq(1).code();
//赋值
$('.summernote').code(sHTML);
事件
oninit
1 $('#summernote').summernote({ 2 oninit: function() { 3 console.log('Summernote is launched'); 4 } 5 });
onenter
1 $('#summernote').summernote({ 2 onenter: function(e) { 3 console.log('Enter/Return key pressed'); 4 } 5 });
onfocus
1 $('#summernote').summernote({ 2 onfocus: function(e) { 3 console.log('Editable area is focused'); 4 } 5 });
onblur
1 $('#summernote').summernote({ 2 onblur: function(e) { 3 console.log('Editable area loses focus'); 4 } 5 });
onkeyup
1 $('#summernote').summernote({ 2 onkeyup: function(e) { 3 console.log('Key is released:', e.keyCode); 4 } 5 });
onkeydown
1 $('#summernote').summernote({ 2 onkeydown: function(e) { 3 console.log('Key is pressed:', e.keyCode); 4 } 5 });
onpaste
1 $('#summernote').summernote({ 2 onpaste: function(e) { 3 console.log('Called event paste'); 4 } 5 });
onImageUpload
可以重写图片上传句柄
1 $('#summernote').summernote({ 2 onImageUpload: function(files, editor, $editable) { 3 console.log('image upload:', files, editor, $editable); 4 } 5 });
onChange
IE9-10: DOMCharacterDataModified, DOMSubtreeModified, DOMNodeInserted
Chrome, FF: input
1 $('#summernote').summernote({ 2 onChange: function(contents, $editable) { 3 console.log('onChange:', contents, $editable); 4 } 5 });
支持18国语言,使用时引入你需要的语言文件,lang值设为你需要的语言
1 <!-- include summernote-ko-KR --> 2 <script src="lang/summernote-ko-KR.js"></script> 3 $(document).ready(function() { 4 $('#summernote').summernote({ 5 lang: 'ko-KR' // default: 'en-US' 6 }); 7 });
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· 为什么AI教师难以实现
· 如何让低于1B参数的小型语言模型实现 100% 的准确率
· AI Agent爆火后,MCP协议为什么如此重要!