wangEditor-基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费
wangEditor基本配置
1 <!DOCTYPE html>
2 <html lang="en">
3
4 <head>
5 <meta charset="UTF-8">
6 <title>wangEditor基本操作</title>
7 </head>
8 <style type="text/css">
9 .toolbar {
10 border: 1px solid #ccc;
11 }
12
13 .text {
14 border: 1px solid #ccc;
15 height: 400px;
16 }
17 textarea{
18 width: 100%;
19 resize: none;
20 padding: 0 10px;
21 box-sizing: border-box;
22 }
23 </style>
24
25 <body>
26
27 <h2>富文本编辑器1</h2>
28
29 <div id="editor"></div>
30
31 <button onclick="editor1.txt.clear()">清空编辑器</button>
32
33 <button onclick="alert(editor1.txt.html())">获取HTML</button>
34
35 <button onclick="alert(editor1.txt.text())">获取文本</button>
36
37 <button onclick="getJson()">获取json</button>
38
39 <h2>富文本编辑器2</h2>
40
41 <div id="div1" class="toolbar"></div>
42
43 <div style="padding: 5px 0; color: #ccc">中间隔离带</div>
44
45 <div id="div2" class="text" style="min-height: 456px;">
46
47 <!--可使用 min-height 实现编辑区域自动增加高度-->
48
49 <p>请输入内容</p>
50
51 </div>
52
53 <textarea name="" id="text" rows="10"></textarea>
54
55 <!-- 注意, 只需要引用 JS,无需引用任何 CSS !!!-->
56 <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
57 <script type="text/javascript" src="script/wangEditor-3.1.1.js"></script>
58
59 <script type="text/javascript">
60
61 // 声明富文本编辑器
62 var E = window.wangEditor;
63
64 // 初始化富文本编辑器
65 var editor1 = new E('#editor');
66
67 // css的z-index
68 editor1.customConfig.zIndex = 100;
69
70 // 自定义菜单配置
71 editor1.customConfig.menus = [
72 'head', // 标题
73 'bold', // 粗体
74 'fontSize', // 字号
75 'fontName', // 字体
76 'italic', // 斜体
77 'underline', // 下划线
78 'strikeThrough', // 删除线
79 'foreColor', // 文字颜色
80 'backColor', // 背景颜色
81 'link', // 插入链接
82 'list', // 列表
83 'justify', // 对齐方式
84 'quote', // 引用
85 'emoticon', // 表情
86 'image', // 插入图片
87 'table', // 表格
88 'video', // 插入视频
89 'code', // 插入代码
90 'undo', // 撤销
91 'redo' // 重复
92 ]
93
94 // 自定义字体
95 editor1.customConfig.fontNames = [
96 '宋体',
97 '微软雅黑',
98 ]
99
100 // 表情面板可以有多个 tab ,因此要配置成一个数组。数组每个元素代表一个 tab 的配置
101 editor1.customConfig.emotions = [
102 {
103 // tab 的标题
104 title: '默认',
105 // type -> 'emoji' / 'image'
106 type: 'image',
107 // content -> 数组
108 content: [
109 {
110 alt: '[坏笑]',
111 src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/50/pcmoren_huaixiao_org.png'
112 },
113 {
114 alt: '[舔屏]',
115 src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/40/pcmoren_tian_org.png'
116 }
117 ]
118 },
119 {
120 // tab 的标题
121 title: 'emoji',
122 // type -> 'emoji' / 'image'
123 type: 'emoji',
124 // content -> 数组
125 content: ['?', '?', '?', '?', '?']
126 }
127 ]
128
129 // 自定义配置颜色(字体颜色、背景色)
130 editor1.customConfig.colors = [
131 '#000000',
132 '#eeece0',
133 '#1c487f',
134 ]
135
136 // 自定义语言
137 editor1.customConfig.lang = {
138 '设置标题': 'title',
139 '正文': 'p',
140 '链接文字': 'link text',
141 '链接': 'link',
142 '上传图片': 'upload image',
143 '上传': 'upload',
144 '创建': 'init'
145 // 还可自定添加更多
146 }
147
148 // 通过 url 参数配置 debug 模式。url 中带有 wangeditor_debug_mode=1 才会开启 debug 模式
149 editor1.customConfig.debug = true;
150 // editor1.customConfig.debug = location.href.indexOf('wangeditor_debug_mode=1') > 0;
151
152 // 创建编辑器1
153 editor1.create();
154
155 // 用 JS 设置的内容
156 editor1.txt.html('<p>用 JS 设置的内容</p>')
157
158 // 初始化编辑器2
159 var editor2 = new E('#div1', '#div2');
160
161 // 隐藏“网络图片”tab
162 editor2.customConfig.showLinkImg = false;
163
164 // 下面两个配置,使用其中一个即可显示“上传图片”的tab。但是两者不要同时使用!!!
165 // editor2.customConfig.uploadImgShowBase64 = true // 使用 base64 保存图片
166 // editor2.customConfig.uploadImgServer = '/upload' // 上传图片到服务器
167
168 // 使用 base64 保存图片
169 editor2.customConfig.uploadImgShowBase64 = true;
170
171 // 同步textarea
172 editor2.customConfig.onchange = function (html) {
173 // 监控变化,同步更新到 textarea
174 $('#text').val(html);
175 }
176
177 // onblur
178 editor2.customConfig.onblur = function (html) {
179 // html 即编辑器中的内容
180 console.log('onblur', html)
181 }
182
183 // onfocus
184 editor2.customConfig.onfocus = function () {
185 // html 即编辑器中的内容
186 console.log('onfocus')
187 }
188
189 // 关闭粘贴样式的过滤
190 editor2.customConfig.pasteFilterStyle = false;
191
192 // 忽略粘贴内容中的图片
193 editor2.customConfig.pasteIgnoreImg = true;
194
195 // 自定义处理粘贴的文本内容
196 editor2.customConfig.pasteTextHandle = function (content) {
197 // content 即粘贴过来的内容(html 或 纯文本),可进行自定义处理然后返回
198 return content + '<p>在粘贴内容后面追加一行</p>';
199 }
200
201 // 插入图片的回调
202 editor2.customConfig.linkImgCallback = function (url) {
203 console.log(url); // url 即插入图片的地址
204 }
205
206 // 插入链接的校验
207 editor2.customConfig.linkCheck = function (text, link) {
208 console.log(text); // 插入的文字
209 console.log(link); // 插入的链接
210
211 return true; // 返回 true 表示校验成功
212 // return '验证失败' // 返回字符串,即校验失败的提示信息
213 }
214
215 // 插入网络图片的校验
216 editor2.customConfig.linkImgCheck = function (src) {
217 console.log(src); // 图片的链接
218
219 return true; // 返回 true 表示校验成功
220 // return '验证失败' // 返回字符串,即校验失败的提示信息
221 }
222
223 // 创建编辑器2
224 editor2.create();
225
226 // js追加文本
227 editor2.txt.append('<p>追加的内容</p>')
228
229 // 初始化 textarea 的值
230 $('#text').val(editor2.txt.html());
231
232 // 禁用编辑功能
233 editor1.$textElem.attr('contenteditable', false);
234
235 // 开启编辑功能
236 editor2.$textElem.attr('contenteditable', true);
237
238 // 获取json
239 function getJson() {
240 var json = editor1.txt.getJSON(); // 获取 JSON 格式的内容
241 var jsonStr = JSON.stringify(json);
242 console.log(json);
243 console.log(jsonStr);
244 }
245
246
247
248 </script>
249
250 </body>
251
252 </html>