Javascript高级编程学习笔记(81)—— 富文本(1)
富文本编辑
富文本编辑又称为: WYSIWYG(What You See Is What You Get,所见即所得)
常用于博客等用途,虽然没有规范,但是在IE最先引入后其他的浏览器厂商也相继完成了对应功能的实现
该技术的本质就是在 HTML 页面中嵌入<iframe>
通过设置页面的 designMode 属性,使该页面可以被编辑
将该属性设置为 on 后文档就会变得可编辑 "off" 是默认值
以下方的 HTML 代码为例
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
</body>
</html>
该页面在 iframe 中可以像其它页面一样被加载
如果要让该页面可编辑,则需要将 designMode 设置为 on
但是该属性只有在页面加载完成后才可以访问,所以需要借用 onload 事件在合适的时候设置该属性
如下代码所示:
<iframe name="richedit" style="height:500px;width:100px;" src="blank.html"></iframe> <script>
window.onload=function(){
frames["richedit"].document.designMode = "on";
}
</script>
该代码片段执行后,页面中则会出现类似文本框的可编辑区字段,该字段具有与其他网页一一致的默认样式,但是通过对 blank.html 的 CSS 进行设置就可以修改可编辑区域的外观
contenteditable属性
除了使用 iframe 这种方式之外,另一种富文本内容的方式是使用名为: contenteditable 的特殊属性
该属性最早由IE实现,可以应用于页面中的任何元素,然后用户就可以编辑该元素
这种方式的优点在于:
- 不用 iframe,空白页,JS
- 只需要为元素设置 contenteditable 属性即可
该属性允许三种值:
- "true" 打开富文本编辑器
- "false" 表示关闭富文本编辑器
- "inherit" 表示该值从父元素继承
Javascript高级编程学习笔记(81)—— 富文本(1)的更多相关文章
- Javascript高级编程学习笔记(83)—— 富文本选区(3)
富文本选区 在富文本编辑器中使用 iframe 的 getSelection() 方法可以获取选中的文本 该方法是 window 对象和 document 对象的属性,调用后会返回一个当前选选择文本的 ...
- Javascript高级编程学习笔记(82)—— 富文本操作(2)
操作富文本 与富文本编辑器的交互的主要方式就是使用 document.execCommand() 方法 该方法可以对文档执行自定义命令,并且可以应用大多数格式 该方法接收三个参数: 要执行命令的名称 ...
- Javascript高级编程学习笔记(88)—— Canvas(5)绘制文本
绘制文本 同样的,canvas也为绘制文本提供了相应的方法. 2D上下文提供的文本绘制方法主要有两个: fillText() strokeText() 这两个方法都接受四个参数 要绘制的文本字符串 绘 ...
- Javascript高级编程学习笔记(76)—— 表单(4)选择文本
文本框脚本 在HTML中文本框有两种实现方式: <input> <textarea> 这两种实现方式虽然在多数情况下表现一致,但是两者之间仍存在许多重要区别 对于<inp ...
- Javascript高级编程学习笔记(64)—— 事件(8)键盘与文本事件
键盘与文本事件 用户在使用键盘时会触发键盘事件 “DOM2级事件”最初规定了键盘事件,但是最后在定稿时又删除了相应内容 所以键盘事件被放入了DOM3级事件的规范中 总的来说有三个键盘事件: keydo ...
- Javascript高级编程学习笔记(53)—— DOM2和DOM3(5)遍历
遍历 “DOM2级遍历和范围” 定义了两个用于辅助完成顺序遍历的DOM结构类型 NodeIterator 和 TreeWalk 上述两种类型可以基于给定起点的DOM结构执行深度优先的遍历操作 对于检测 ...
- Javascript高级编程学习笔记(37)—— DOM(3)Element
Element类型 除了Document类型之外,Element类型应该就是web编程中最常用的类型了 Element类型主要用于表现XML.HTML元素,提供对元素标签名.子节点以及特性的访问 特性 ...
- Javascript高级编程学习笔记(35)—— DOM(1)节点
DOM JS由三部分组成 1.BOM 2.DOM 3.ECMAScript ES和BOM在前面的文章已经介绍过了 今天开始JS组成的最后一部分DOM(文档对象模型) 我们知道,JS中的这三个部分实际上 ...
- Javascript高级编程学习笔记(15)—— 引用类型(4)RegExp类型
JS中处理字符串最常用的应该就是正则了 同样正则(RegExp)类型也是JS中引用类型的一种 ECMAScript通过 RegExp类型 来支持正则表达式 创建正则 var expression = ...
随机推荐
- Java-HashMap、HashSet、hashTable
HashMap:key:可null,重复的key对应的value会出现后面覆盖前面的情况.value:可null; 引用:数组,数组中存链表. HashSet使用HashMap的实现存储数据,所以有H ...
- Ansible安装及OS规划
Ansible安装 1.以管理用户mtnsadmin连接服务器后下载安装包(-O表示将下载的文件存放到指定的文件夹下,同时重命名下载的文件) sudo wget -O /etc/yum.re ...
- 通过js获取外部css样式
通过js获取外部样式表中的属性,比如.box在style.css样式表中有个属性叫font-size:16px; 通过js获取.box的这个属性: js代码为: <script> wind ...
- DataTables warning : Requested unknown parameter '0' from the data source for row 0错误
在做datatables的项目,从后台取得数据后,返回给datatables界面时会报下面的错误: DataTables warning : Requested unknown parameter ' ...
- 博客七----tensorflow-gpu安装满满填坑
具体内容见我的开源中国教程:https://my.oschina.net/u/3770644/blog/3043073 因为编写习惯原因,我的大多数详细教程在开源中国中.有兴趣的大家打开连接就好 强调 ...
- Unity Button事件的简洁处理
看到很多人依然还是通过最原始的方法给button绑定事件并处理,这种通过Find往子集一个个的查找,获取到后再绑定事件这种操作很费事,有些人则是对查找对象写了个方法自动往子集遍历更方便获取对象,但还是 ...
- css关于浮动的高度塌陷
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- RQNOJ PID51 / 乒乓球 ☆
因为是多行输入,所以用了getchar()进行输入,题目没有说明数据范围,所以开始的时候因为数组开的不够大,WA90了一次,我之前开了10000的长度,之后开100000的长度跑过了 一个基本的模拟, ...
- 织梦dedecms后台文章搜索关键字,关键字包含文章内容的代码修改
1.织梦dedecms后台文章搜索功能在哪里找?织梦dedecms后台-->核心-->常用操作-->所有档案列表(或)织梦dedecms后台-->核心-->内容管理--& ...
- Turtle库的建立——汉诺塔
Turtle库的建立——汉诺塔 1.首先是要用递归方法来完成这个汉诺塔法则 2.其次,就要编程好代码以及熟练掌握Turtle函数库 一. 相关代码如下: import turtle class St ...