更新时间:2018/6/25 上午10:29:45
更新说明:添加了插入内容时可附带数据,该数据可在获取内容时一并返回,修复了谷歌浏览器有时换行失败的问题。
**这只是一个简单的编辑器,拥有插入表情,插入行块功能,支持IE9+**
演示网址:http://www.jq22.com/jquery-info17495
首先你需要引入css与JS
<script src="js/easyEditor.js"></script>
html你只需要一个div
<div id="editor" style="width:500px;height:300px;"></div>
我们需要实例化
var editor = easyEditor('editor');
如果你需要placeholder
/** * @param {string} placeholder实现 * */ editor.placeholder(str);
可以使用js关闭placeholder
editor.closePlaceholder();
插入表情
/** * @param {object} opt * @param {string} opt.src 表情路径 * @param {string} opt.remark 表情说明 * @param {object} opt.data 表情携带的数据,在getContent方法里面会按插入表情的顺序放回 * @param {function} opt.afterInsert 插入后的回调函数 * */ editor.insertEmoji({ src: 'emoji/1.gif', remark: '笑脸', data: { id: 12 }, afterInsert: function() { //do something } });
插入行块
* @param { object } opt * @param { string } opt.text 文字 * @param { string } opt.color 文字颜色 * @param { object } opt.data 行块携带的数据, 在getContent方法里面会按插入行块的顺序放回 * @param { function } opt.afterInsert 插入后的回调函数 * * / editor.insertBlock({ text: '@somebody', color: '#f00', data: { id: 123 }, afterInsert: function() { //do something } });
获取编辑器里面的text
/** * @param {object} opt * * @param {string} opt.emojiSign 表情的分隔符(默认为 |) * @param {array} opt.emojiSign 表情的分隔符(默认为 ['|','|']) * * @param {string} opt.blockSign 行块的分隔符(默认为 |) * @param {array} opt.blockSign 行块的分隔符(默认为 ['|','|']) * * emojiSign与blockSign接受字符串或者数组,如果是字符串则自动转换成内容一样长度为2的数组 * 例如 emojiSign = '|' 则或者的内容两边都为 |笑脸| * 如果 emojiSign = ['[',']'] 则获取的内容为 [笑脸] * 如果数组长度大于2,最终只会获取前两位的内容当成分隔符 * * blockSign同上 */ var myhtml = editor.getContent({ emojiSign : ['[',']'], blockSign : '%%', });
聚焦
editor.focus();
失焦
editor.blur();
光标定位最前面、最后面
/** * @param {string} position 仅仅支持 'start' 或者 'end' * */ editor.setPosition(position);
选中所有内容
editor.selectAll();
删除选中内容
editor.clearSelect();
删除所有内容
editor.clearAll();
添加换行
editor.changeLine();
更新时间:2018/5/29 上午9:27:32
更新说明:修改了MD文档,修复了光标获取不正确,考虑了更多用户的操作,新增API(具体请看MD文档)
首先你需要引入
<link rel="stylesheet" href="css/easyEditor.css" /> <script src="js/easyEditor.js"></script>
你只需要一个div
<div id="editor" style="width:500px;height:300px;"></div>
我们需要实例化
editor = easyEditor('editor');
//表情 var emojiBtn = document.getElementById('emoji_btn'); var emojiBox = document.getElementById('emoji_list'); var emojiList = emojiBox.getElementsByTagName('img'); //揠定事件添加表情 for (var i = 0; i < emojiList.length; i++) { addEvent(emojiList[i], 'click', function() { var src = this.getAttribute('src'); editor.insertEmoji({ src: src, remark: '笑脸' }); //添加表情 emojiBox.style.display = 'none'; }); } //At人 var atBtn = document.getElementById('atBtn'); addEvent(atBtn, 'click', function() { //添加At人 editor.insertBlock({ text: '@某某', color: '#f00' }); }); //?取text var showBox = document.getElementById('show'); var textBtn = document.getElementById('getTextBtn'); addEvent(textBtn, 'click', function() { showBox.innerHTML = htmlEncode(editor.getContent({ emojiSign: '|', //表情分隔符 blockSign: '%' //行块分隔符 })); }); //聚焦 var focusBtn = document.getElementById('focusBtn'); addEvent(focusBtn, 'click', function() { editor.focus(); }); //失焦 var blurBtn = document.getElementById('blurBtn'); addEvent(blurBtn, 'click', function() { editor.blur(); }); //光标定位前面 var setPositionStartBtn = document.getElementById('setPositionStartBtn'); addEvent(setPositionStartBtn, 'click', function() { editor.setPosition('start'); }); //光标定位后面 var setPositionEndBtn = document.getElementById('setPositionEndBtn'); addEvent(setPositionEndBtn, 'click', function() { editor.setPosition('end'); }); //选中所有内容 var selectAllBtn = document.getElementById('selectAllBtn'); addEvent(selectAllBtn, 'click', function() { editor.selectAll(); }); //删除选中内容 var clearSelectBtn = document.getElementById('clearSelectBtn'); addEvent(clearSelectBtn, 'click', function() { editor.clearSelect(); }); //删除所有内容 var clearAllBtn = document.getElementById('clearAllBtn'); addEvent(clearAllBtn, 'click', function() { editor.clearAll(); }); //换行 var changeLineBtn = document.getElementById('changeLineBtn'); addEvent(changeLineBtn, 'click', function() { editor.changeLine(); }); //添加placeholder var placeholderBtn = document.getElementById('placeholderBtn'); addEvent(placeholderBtn, 'click', function() { editor.placeholder('我们从这里开始...'); });
更新时间:2017/12/25 下午2:20:05
更新说明:支持IE9,修改了md文档的描述,新增placeholder功能
首先你需要引入css与JS
<link rel="stylesheet" href="css/easyEditor.css" /> <script src="js/easyEditor.js"></script>
html你只需要一个div
<div id="editor" style="width:500px;height:300px;"></div>
我们需要实例化
var editor = new EasyEditor('editor');
插入表情
/** * @desc 插入表情方法 * @param {object} opt * @param {string} opt.src 表情路径 * @param {string} opt.remark 表情说明 * @param {function} opt.afterInsert 插入后的回调函数 * */ editor.insertEmoji({ src: 'emoji/1.gif', remark: '笑脸', afterInsert: function() { //do something } });
插入行块
/** * @desc 插入行块方法 * @param {object} opt * @param {string} opt.text 文字 * @param {string} opt.color 文字颜色 * @param {function} opt.afterInsert 插入后的回调函数 * */ editor.insertBlock({ text: '@somebody', color: '#f00', afterInsert: function() { //do something } });
获取编辑器里面的html
var myhtml = editor.getContent(false);
获取编辑器里面的text
var mytext = editor.getContent(true);
属性
editor.sel; // selection 对象 editor.ran; // range 对象 editor.obj; // 编辑器对象(即文中id为editor的div);