Simditor 富文本编辑器的使用

 Simditor 是Tower开源的一个基于浏览器所见即所得的文本编辑器,它的理念是保持简单,避免过度的功能,使用方法如下:

  Step1 . 点击此处   下载路径 下载最新版本的simditor的zip,如图所示:
   
 

下载解压后会发现是整个simditor项目,很多东西项目根本不需要,只需要将\site\assets下的images、scripts、styles文件夹拷

贝到我们项目中,如图所示:


Step2. 在项目的webapp中新建文件夹smiditor,将上面的文件放到此文件夹中,如图所示


Step3 . 在页面中引用需要的文件
      <!--css引用-->
     <div class="page-sidebar-wrapper" th:include="/common/page_sidebar::pageSidebar">
     <!--js引用-->
    <script type="text/javascript" th:src="@{/scripts/simditor/scripts/module.js}"></script>
    <script type="text/javascript" th:src="@{/scripts/simditor/scripts/hotkeys.js}"></script>
    <script type="text/javascript" th:src="@{/scripts/simditor/scripts/uploader.js}"></script>
    <script type="text/javascript" th:src="@{/scripts/simditor/scripts/simditor.js}"></script> 

注意:如果页面中没有引用jquery的js还需要引用jquery的js


Step4. 在页面中创建一个textarea元素,代码如下:
  <div class="form-group">
        <label class="col-md-3 control-label">详情
          <span class="required"> * </span>
        </label>
      <div class="col-md-7" id="contextText">
	<div class="form-group" align="center" id="nochecke">
	     <textarea id="editor" type="text/plain"  hidden="true" autofocus>
	     </textarea>
	</div>
     </div>
    <div style="display: none">
	<input type="input" id="content" name="content" value=''>	
    </div>
 </div>            

注意:textarea 的id值要与接下来的初始化simditor 的JS代码对应起来,隐藏的input 是 form表单提交时获取不到textarea 的值,所以需要一个能获取到的input,input 的 name 值要和后台接收的字段一致。

为了能实时更新隐藏input的值,js中需要有个同步的方法
function contextTextOnblur() {
	$(document).on("blur", "#contextText", function() {
		var content = $(".simditor-body").html();
		$("#content").val(content);
	});
}

Step5. 初始化simditor,代码如下:
	$(function(){
        Simditor.locale = 'zh-CN';//设置中文
        var editor = new Simditor({
            textarea: $("#editor"),  //textarea的id
            placeholder: '',
            toolbar:  ['title', 'bold', 'italic', 'underline', 'strikethrough', 'fontScale', 'color', '|', 'ol', 'ul', 'blockquote', 'code', 'table', '|', 'link', 'image', 'hr', '|', 'indent', 'outdent', 'alignment'], //工具条都包含哪些内容
            pasteImage: true,//允许粘贴图片
            defaultImage: '/simditor/images/image.png',//编辑器插入的默认图片,此处可以删除
            upload : {
                url : '/smiditor/uploadSimditorImg', //文件上传的接口地址
                params: null, //键值对,指定文件上传接口的额外参数,上传的时候随文件一起提交
                fileKey:'file', //服务器端获取文件数据的参数名
                connectionCount: 3,
                leaveConfirm: '正在上传文件'
            }
        });
      });

注意:文件上需要返回特定的字段,成功时返回
{
  "success":true,
  "file_path":""
}

失败时返回:
{
  "success":false
}
Step6. 实现的controller中
@Controller
@RequestMapping("/smiditor")
public class SmiditorUploadImageController extends BaseController {
	
	@Autowired
	UploadSmiditorImageServie uploadSmiditorImageServie;
	
	@RequestMapping("/uploadSimditorImg")
	@ResponseBody
	public JSONObject uploadSimditorImg(MultipartFile file) {
		JSONObject json = new JSONObject();
		try {
			json = uploadSmiditorImageServie.uploadSimditorImg(file);
		} catch (Exception e) {
			LogWriter.writeErrorLog("上传编辑器图片失败:" + e);
		}

		return json;
	}

}

 注意: 参数名要和前台的js中的filekey一致,做图片上传的时候无论图片上传成功与否都会显示出来,二者唯一的区别就是图片的路径, 如果图片上传成功,图片的路径应该是正常的路径,如果图片上传失败图片的路径是被base64加密过的路径。

Step7. 实现service方法
	public JSONObject uploadSimditorImg(MultipartFile file) {
		JSONObject json = new JSONObject();
		try {
		//调用图片上传的方法
			ResultObject<UploadResult> resultObject = fileUploadService.uploadSingleImage(file);
            if(ValidateUtil.validateStringIsNullOrEmpty(resultObject.getData().getFileUrl()) == false){
            	json.put("success", true);
            	json.put("file_path", resultObject.getData().getFileUrl());
            }else{
            	json.put("success", false);
            }
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

        return json;
	}

至此simditor 就可以正常使用啦。

注意:simditor默认的宽高是随内容的长短变化的,如果想固定宽高,找到simditor/styles/simditor.css文件中141行,可以加上固定宽高。
.simditor {
  position: relative;
  border: 1px solid #c9d8db;
   width: 80%; 
}

 




评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值