前言:
  和弟弟合作, 一起整了个智慧屋的小web站点, 里面包含了很多经典的智力和推理题. 其实该站点从技术层面来分析的话, 也算一个信息发布站点. 因此在该网站的后台运营中, 富文本的编辑器显得尤为重要.
  本文将讲述两种使用富文本编辑器的思路, 重点讲述弹出式形态的实现思路, 以及中间踩过的坑.

基础:
  文章的编辑采用ueditor作为富文本编辑器, 而前框的框架则使用bootstrap, 下文的解决方案都是基于此的.
  ueditor的相关博文:
  • ueditor和springmvc的集成

使用模式:
  富文本的编辑使用, 大致有两种方式, 一种较为常规, 嵌入在页面内, 另一种则为弹出式形态, 针对长文章编辑, 好处是无需持久化即可预览, 分段编辑.
  • 嵌入式
  这种富文本编辑器的使用方式较为普遍, 比如cnblogs本身的博客编辑就是采用这种模式, 在比如留言的编辑框(功能极度裁剪后)亦然.
  
  这种嵌入式的编辑模式, 深入人心, 也是一般开发者的首选.
  • 弹出式
  当文章特别长的时候, 你会发现分段编辑的模式, 体验更加舒适. 因此弹出式的编辑模式, 也被很多wiki系统(内部资料系统)所推崇.
  在一块文本区域中, 点击编辑, 即弹出一个对话框编辑器. 用户可以从容编辑该文本区域, ^_^.
  

技术实践:
  由于采用弹出式的编辑器模式, 因此需要用到模态框. 我们就借助bootstrap的模态框来简单定义实现.
  1) 引入bootstrap和ueditor的css和js库

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, user-scalable=no">
<!-- 新 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="/static/css/bootstrap.min.css">
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="/static/js/jquery-1.12.0.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="/static/js/bootstrap.min.js"></script><!-- 初始化ueditor -->
<script src="/ueditor/ueditor.config.js"></script>
<script src="/ueditor/ueditor.all.min.js"></script>
<script src="/ueditor/lang/zh-cn/zh-cn.js"></script>

  2) 定义融入模态框的编辑器

<!-- 模态框(Modal) -->
<div class="modal fade" id="myModal" <%--tabindex="-1"--%> role="dialog"aria-labelledby="myModalLabel" aria-hidden="true" <%--style="z-index: 800"--%>><div class="modal-dialog"><div class="modal-content"><div class="modal-header" ><button type="button" class="close"data-dismiss="modal" aria-hidden="true">×</button><h4 class="modal-title" id="myModalLabel">编辑器标题</h4></div><div class="modal-body clearfix" id="id_modal_body"><script id="id_rich_text" name="id_rich_text" type="text/plain"></script><script type="text/javascript">var editor = UE.getEditor('id_rich_text');</script></div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">关闭</button><button type="button" class="btn btn-primary" id="btn_modal_update">更新内容</button></div></div><!-- /.modal-content --></div><!-- /.modal -->
</div>

  3) 添加事件处理

$("#btn_edit_content").click(function() {// *) 弹出对话框, 把富文本赋予给编辑器editor.setContent($("#idv_edit_content").html());// *) 展示模态框$('#myModal').modal({backdrop: 'static', keyboard: false});
});$("#btn_modal_update").click(function() {// *) 把编辑器的内容设置到原文本区域$("#idv_edit_content").html(editor.getContent());// *) 隐藏模态框$('#myModal').modal('hide');
});

  具体就这么几部步骤, 简单有效. 至于富文本的保存和展示, 和此无关了.

遇到的坑:

  默认情况下, 对话框会因为区域外点击和ESC键影响了而消失, 这样就导致编辑到一半就失败了.
  bootstrap的模态框中, modal的参数options={backdrop: 'static', keyboard: false}, 这样对话框就不会受对话框区域外点击和ESC键影响而消失了.
  还有个问题就是, 对话框的按钮控件(比如字体, 颜色的选定), 其在对话框的背后显示了, 这样操作就没法进行下去了.
  依据经验: 这肯定是dom组件的z-index属性, 顺序不对导致的.
  bootstrap模块对话框的z-index默认为1050, 而ueditor的按钮控件其z-index默认为900. 因此修改下ueditor的默认z-index配置为1050以上即可.

后记:
  觉得现在自己还算一线码农吧, 可惜职业方向并没有专注, 涉及的东西杂而浅. 现在也反思这点的. 但有时也没办法, 深深的无奈.

个人站点&公众号:

    个人微信公众号: 小木的智慧屋

    个人游戏作品集站点(尚在建设中...): www.mmxfgame.com,  也可直接ip访问: http://120.26.221.54/.

转载于:https://www.cnblogs.com/mumuxinfei/p/5443569.html

web开发实战--弹出式富文本编辑器的实现思路和踩过的坑相关推荐

  1. layui循环遍历数据_Layui之动态循环遍历出的富文本编辑器显示

    这篇记得是工作中的例子 描述: 平常的富文本显示都是根据静态的html获取id来显示,比如: 富文本内容 layui.use([ "form", "layer" ...

  2. vue实战025:配置TinyMCE富文本编辑器

    目录 组件安装 组件引用 添加模板 初始化编辑器 常用属性配置 扩展插件使用 之前分享了一篇vue实战021:Vue-Quill-Editor富文本编辑器使用,有网友说TinyMCE更好用,所以今天来 ...

  3. Taro React组件开发(2) —— RuiEditor 富文本编辑器【兼容H5和微信小程序】

    1. 富文本编辑器需求分析 需要实现图片上传显示,上传使用Taro的 chooseImage 和 uploadFile,完成图片的上传!!! 文字的居左.居中.居右展示,使用格式化方法 format! ...

  4. C# Winform开发 弹出式输入框 文本框

    这个组件在Microsoft.VisualBasic中,可以直接调用这句话,然后提示会提醒你然后点击就可以添加这个命名空间了. 在WInform中使用的实例: string str = Interac ...

  5. vue2引入wangEditor5富文本编辑器

    以下为引入wangEditor <template><div><div class="w-e-for-vue"><!-- 工具栏 --&g ...

  6. web富文本编辑器的选择のxheditor

    最近在研究web富文本编辑器,处理知道的 1.老牌fckeditor           网址:http://ckeditor.com/ 2.百度退出的ueditor 网址:http://uedito ...

  7. 富文本编辑器开发系列5——浏览器`Selection API`探究

    系列文章快速阅读: 富文本编辑器开发系列-1-基础概念 富文本编辑器开发系列2-document.execCommand 的API 富文本编辑器开发系列3-selection 富文本编辑器开发系列4- ...

  8. 【推荐】1657- 灵活可扩展,2023年值得尝试的13款富文本编辑器

    作为前端开发人员,我们经常需要为网站和应用程序添加文本内容.与传统的文本编辑器不同,富文本编辑器可让您轻松创建各种类型的文本内容,包括加粗字体.斜体字.框架.列表.图片和视频等. 本文我将向大家推荐 ...

  9. 灵活可扩展,2023年值得尝试的13款富文本编辑器

    作为前端开发人员,我们经常需要为网站和应用程序添加文本内容.与传统的文本编辑器不同,富文本编辑器可让您轻松创建各种类型的文本内容,包括加粗字体.斜体字.框架.列表.图片和视频等. 本文我将向大家推荐 ...

  10. Ueditor富文本编辑器修改图片上传路径

    Ueditor富文本编辑器修改图片上传路径 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/QZPHP_L 由于网站后台使用Zend framewor ...

最新文章

  1. spring cloud alibaba版本选择
  2. 浅析Java内存模型--ClassLoader
  3. iptables规则备份和恢复、firewall的zone的操作、service的操作
  4. 华为路由器的NAT配置
  5. 仍不切换到Java 8的6个理由
  6. simulink将值传递给mask封装下的模块
  7. 石头剪子布蜥蜴史波克python_C++字符串——石头剪刀布
  8. 面向初学者的带MVC API的Angular Js Table CRUD MSSQL
  9. 字典排序 python3_这10个字典操作你必须知道
  10. 测试对于list的sort与sorted的效率
  11. 债券属性「久期」的本质是什么?
  12. 蒸汽流量计算软件_网上难得学到的知识!涡街流量计选型设计有诀窍
  13. 计算机 64虚拟内存设置方法,计算机虚拟内存怎样设置
  14. 读光驱时,提示“无法访问,函数不正确”错误提示
  15. 你还为给自己的IT团队起名字,写口号烦恼吗?(较为流行的团队名称)
  16. apache评分表的意义_APACHE评分系统及评分表 -
  17. 分销APP联盟商家入驻商城系统开发
  18. cassandra 数据库
  19. TextRank方法的优化——MMR(最大边界相关算法)
  20. ArcGIS利用数据驱动工具条批量出图

热门文章

  1. String 截取字符串#中间的文本
  2. json读取json文件,上传到后台
  3. 再见2012,你好2013,总结愿望
  4. redis string底层数据结构
  5. 户如何获得渗透服务---步骤与效果
  6. 协议 UDP、TCP UDP的接发数据的步骤
  7. Java+jquery+jsonp实现跨域
  8. 考勤系统——代码分析datagrid
  9. 一次领光天猫双 11 所有优惠卷
  10. 第六、七章重点知识点总结