最近在使用Kindeditor,但是出现了些问题,不过最终都解决了,所以在此分享下也记录下
var editor;
KindEditor.ready(function(K) {
editor = K.create('textarea[name="answer"]', {
cssPath : '<%=request.getContextPath()%>/kindeditor/plugins/code/prettify.css',
uploadJson : '<%=request.getContextPath()%>/kindeditor/jsp/upload_json.jsp',
fileManagerJson : '<%=request.getContextPath()%>/kindeditor/jsp/file_manager_json.jsp',
allowFileManager : true,
afterCreate : function() {
var self = this;
K.ctrl(document, 13, function() {
self.sync();
document.forms['problemForm'].submit();
});
K.ctrl(self.edit.doc, 13, function() {
self.sync();
document.forms['problemForm'].submit();
});
}
});
prettyPrint();
});
1、显示正常,但是无法获取到焦点的问题
解:由于我的项目当中有ligerUI框架,所以在页面加载的时候就会去查询数据,而且我这里是要点击编辑按钮后,才弹出一个层,里面包含有Kindeditor,而Kindeditor也是在页面加载的时候初始化,所以在弹出层后点击Kindeditor无反应,获取不到焦点,也编辑不了,点击全屏后就可以,所以我在点击编辑的时间后加全屏的代码
如下:
editor.fullscreen();
liger = $.ligerDialog.open({target: $("#editInfo") , title: '编辑', width: 720, height: 600 ,buttons: [{ text: '确定', onclick: function (item, dialog) { sub(); } }] });
editor.fullscreen();
2、焦点获取到能编辑后,新问题又出现了,提交的时候后台获取不到Kindeditor的值,由于我的是通过js提交,所以在提交之前添加一句赋值的代码就OK了如下:
[color=red]$("#answer").val(editor.html());[/color]
$("#problemForm").submit();
3、到这里文字的修改已经没问题,但是还缺少图片的上传,我试了下本地上传图片,结果报错500,后来发现没有将Kindeditor下载下来的jsp文件目录下的三个jar包导入都项目,导入后就不报错了!
4、500的错是不报了,却提示我"文件目录不存在!",后来我打开Kindeditor下载下来的jsp文件目录下的upload_json.jsp文件,看到有个savePath变量,这个是保存图片的目录,他在后面加了一个"attached/",这个目录在我项目当中确实是不存在的,我手动建了一个就OK了,记得在“attached/”前面也价格斜杠才可以,不然也会报目录不存在,如下:
String savePath = pageContext.getServletContext().getRealPath("/") + "/attached/";