基于JQuery的简单富文本编辑器
- 利用jQuery实现最简单的编辑器
- 我试了很多种方法,目前最快捷能够实现及其简单的编辑可以使用 document.execCommand("ForeColor", "false", sColor);就能实现。
但是看到 MDN web文档上提示该方法已经废弃。这个方法并不是很好,有时间会去选择更好的方法。
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title></title>
- </head>
- <style type="text/css">
- .editor_div {
- border: 1px solid #ccc;
- }
- .btn_div {
- border-bottom: 1px solid #ccc;
- height: 28px;
- }
- .span_btn {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- font-size: 21px;
- font-weight: 400;
- display: inline-block;
- margin-left: 21px;
- cursor: pointer;
- position: relative;
- }
- .editor_content {
- height: 200px;
- width: 100%;
- overflow: hidden;
- }
- .header_con {
- position: absolute;
- top: 28px;
- left: 0;
- background-color: #e8e8e8;
- display: none;
- width: 50px;
- text-align: center;
- }
- .header_hcon {
- height: 19px;
- width: 50px;
- border-top: 1px solid #ccc;
- display: inline-block;
- }
- </style>
- <body>
- <div class="editor_div">
- <div class="btn_div">
- <span class="span_btn" onclick="tobebold()" id="tobebold">加粗B</span>
- <span class="span_btn" onclick="showchildren(this)">标签H
- <span class="header_con">
- <span class="header_hcon" onclick="clcikthis(this)" data-type="H5">H5</span>
- <span class="header_hcon" onclick="clcikthis(this)" data-type="H4">H4</span>
- <span class="header_hcon" onclick="clcikthis(this)" data-type="H3">H3</span>
- <span class="header_hcon" onclick="clcikthis(this)" data-type="H2">H2</span>
- <span class="header_hcon" onclick="clcikthis(this)" data-type="H1">H1</span>
- <span class="header_hcon" onclick="clcikthis(this)" data-type="p">正文</span>
- </span>
- </span>
- <span class="span_btn" onclick="showchildren(this)">颜色C
- <span class="header_con">
- <span class="header_hcon" onclick="changecolor(this)">red</span>
- <span class="header_hcon" onclick="changecolor(this)">blue</span>
- <span class="header_hcon" onclick="changecolor(this)">pink</span>
- <span class="header_hcon" onclick="changecolor(this)">gold</span>
- </span>
- </span>
- </div>
- <div class="editor_content" id="editor_content" tabindex="0" contenteditable="true">
- </div>
- </div>
- </body>
- <script src="./jquery.min.js" type="text/javascript" charset="utf-8"></script>
- <script type="text/javascript">
- if (window.getSelection) { //一般浏览器
- userSelection = window.getSelection();
- } else if (document.selection) { //IE浏览器、Opera
- userSelection = document.selection.createRange();
- }
- var oldHtml = ""
- var oldStr = ""
- var newHtml = ""
- var newStr = ""
- const tobebold = () => {
- document.execCommand("Bold", "false", null);
- }
- const showchildren = (e) => {
- $(e).children("span").css({
- "display": "inline-block"
- })
- }
- const clcikthis = (e) => {
- let hheader = $(e).attr("data-type")
- if (userSelection.toString().length != 0) {
- document.execCommand("FormatBlock", "false", hheader);
- }
- event.stopPropagation();
- $(e).parent().hide()
- return false
- }
- const changecolor = (e) => {
- let sColor = $(e).html().toLowerCase()
- document.execCommand("ForeColor", "false", sColor);
- event.stopPropagation();
- $(e).parent().hide()
- return false
- }
- // 点击后除指定位置外其他地方都会隐藏
- $("body").click(function(e) {
- if (!$(e.target).closest(".span_btn").length) {
- $(".header_con").hide();
- }
- });
- </script>
- </html>
图片效果如下
基于JQuery的简单富文本编辑器的更多相关文章
- 基于jquery的bootstrap在线文本编辑器插件Summernote
Summernote是一个基于jquery的bootstrap超级简单WYSIWYG在线编辑器.Summernote非常的轻量级,大小只有30KB,支持Safari,Chrome,Firefox.Op ...
- 原生JS实现简单富文本编辑器2
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 原生JS实现简单富文本编辑器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 基于jquery的bootstrap在线文本编辑器插件Summernote 简单强大
Summernote是一个基于jquery的bootstrap超级简单WYSIWYG在线编辑器.Summernote非常的轻量级,大小只有30KB,支持Safari,Chrome,Firefox.Op ...
- 基于jquery的bootstrap在线文本编辑器插件Summernote (转)
Summernote是一个基于jquery的bootstrap超级简单WYSIWYG在线编辑器.Summernote非常的轻量级,大小只有30KB,支持Safari,Chrome,Firefox.Op ...
- Jquery的bootstrap在线文本编辑器插件Summernote
http://www.jqcool.net/demo/201407/bootstrap-summernote/ Summernote是一个基于jquery的bootstrap超级简单WYSIWYG在线 ...
- Android - 富文本编辑器
Android富文本编辑器(一):基础知识 目前主流的基于Android富文本开发方式思路如下: 基于TextView图文混排 使用方式: TextView textView = new TextVi ...
- 基于ABP做一个简单的系统——实战篇:4.基于富文本编辑器,Razor模板引擎生成内容并导出Word 填坑记录
起因 需求是这样的,有一种协议需要生成,协议的模板是可配置的,在生成过程中,模板中的内容可以根据约定的标记进行替换(就像mvc的razor模板一样).生成后的内容还需要导出成word或pdf. 常见的 ...
- N个富文本编辑器/基于Web的HTML编辑器
转自:http://www.cnblogs.com/lingyuan/archive/2010/11/15/1877447.html 基于WEB的HTML 编辑器,WYSIWYG所见即所得的编辑器,或 ...
随机推荐
- EL表达式用法---查询博客
jsp脚本:<%=request.getAttribute(name)%>EL表达式替代上面的脚本:${requestScope.name} 使用EL最主要的作用是获得四大域中的数据,格式 ...
- 特效 css3 渐变背景框
.box{ 子级 position: relative; width: 300px; height: 400px; display: flex; justify-content: center; al ...
- 5.CSS的引入方式
CSS的三种样式表 按照CSS样式书写的位置(或者引入的方式),CSS的样式表可以分为三大类: 1.行内样式表(行内式) <div style="color:red: font-siz ...
- 解码问题--leetcode:91 (2019商汤笔试)
题目:有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'. 现在给一串数字,给出有多少种可能的译码结果. 想法: 该题就是动态规划问题,建议在写 ...
- python argparse总结
python2.7废除optparse,原因:http://code.google.com/p/argparse/ 说了半天好像是重开了个小号练级 抓紧写下来一会又得忘了 用法: import arg ...
- k-means聚类分析 python 代码实现(不使用现成聚类库)
一.实验目标 1.使用 K-means 模型进行聚类,尝试使用不同的类别个数 K,并分析聚类结果. 2.按照 8:2 的比例随机将数据划分为训练集和测试集,至少尝试 3 个不同的 K 值,并画出不 ...
- 对象调用 push 方法
/* Array.prototype.push = function A(val) { this[this.length] = val; // =>this.length 在原来的基础上加1 r ...
- DOM表单,下拉菜单和表格
DOM访问表单控件的常用属性和方法如下: action 返回该表单的提交地址 elements 返回表单内全部表单控件所组成的数组,通过数组可以访问表单内的任何表单控件. length 返回表单内表单 ...
- MySQL 高级—— Join 、索引 、优化
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.Join 查询 1.SQL执行顺序(一般情况下) 1.1 手写顺序: SELECT DISTINCT ...
- Java实现 LeetCode 828 统计子串中的唯一字符(暴力+转数组)
828. 统计子串中的唯一字符 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数. 例如:s = "LEETCODE" ...