Javascript高级编程学习笔记(83)—— 富文本选区(3)
富文本选区
在富文本编辑器中使用 iframe 的 getSelection() 方法可以获取选中的文本
该方法是 window 对象和 document 对象的属性,调用后会返回一个当前选选择文本的 Selection 对象
selection 对象拥有下列属性:
- anchorNode: 选区起点所在节点
- anchorOffset:选区起点在其所在节点中的偏移量
- focusNode:选区终点所在节点
- focusOffest:选区终点在其所在节点中的偏移量
- isCollapsed:布尔值,表示选区的起点终点是否重合
- rangeCount:选区包含DOM节点的数量
拥有下列方法:
- addRange(range):将指定范围内的内容添加到选区
- collapse(node,offset):将选区折叠到指定节点的指定偏移处
- collapseToEnd():将选区折叠到选区终点的位置
- collapseToStart():将选区折叠到起点位置
- containsNode(node):确定指定节点是否包含在选区之内
- deleteFromDocument():从文档中删除选区中的文本
- extend(node,offset):将 focusNode 和 focusOffset 移动到指定位置来拓展选区
- getRangeAt(index): 返回所应对应选区中的DOM范围
- removeAllRanges():从选区中移除所有的DOM范围,该方法也会移除选区,因为选区中至少要有一个范围
- removeRange(range): 从选区中移除指定范围
- selectAllChildren(node):清除选区并选择指定节点的所有子节点
- toString():返回选区包含的指定文本
以下方代码为例:
let selection = frames["richedit"].getSelection(); // 取得选择的文本
let selectedText = selection.toString(); // 取得选区范围
let range = selection.getRangeAt(0); // 突出显示选择的文本
let span = frames["richedit"].document.createElement('span');
span.style.backgroundColor = "yellow";
range.surroundContents(span);
上方代码会为富文本编辑器中选中的文本添加黄色背景
表单与富文本
由于富文本编辑器不是使用表单控件实现的,因此从技术上来说富文本编辑器并不属于表单的一部分
所以我们在提交表单时富文本编辑器内的内容并不会随着一起提交,所以我们需要手工提取并提交富文本编辑器中的内容
如下所示:
let form = document.forms[0];
form.onsubmit = function(event){
let target = event.target;
target.elements["comments"].value = document.getElementById("richedit").innerHtml;
}
Javascript高级编程学习笔记(83)—— 富文本选区(3)的更多相关文章
- Javascript高级编程学习笔记(82)—— 富文本操作(2)
操作富文本 与富文本编辑器的交互的主要方式就是使用 document.execCommand() 方法 该方法可以对文档执行自定义命令,并且可以应用大多数格式 该方法接收三个参数: 要执行命令的名称 ...
- Javascript高级编程学习笔记(81)—— 富文本(1)
富文本编辑 富文本编辑又称为: WYSIWYG(What You See Is What You Get,所见即所得) 常用于博客等用途,虽然没有规范,但是在IE最先引入后其他的浏览器厂商也相继完成了 ...
- 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 = ...
随机推荐
- hive资料
Hive基本操作 Hive 解锁操作 之前使用Hive,出现过一种情况:在代码正在执行insert into或insert overwrite时,中途手动将程序停掉,会出现卡死情况,只能执行查询操作, ...
- Springboot异常:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController'
今天本菜鸟编写程序时,遇到了一个异常. org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating ...
- ----改写superheros的json以及上传到github----
以下为js代码: var header = document.querySelector('header'); var section = document.querySelector('sectio ...
- 【转】【完全开源】微信客户端.NET版
[转][完全开源]微信客户端.NET版 目录 说明 功能 原理步骤 一些参考 说明 前两天比较闲,研究了一下web版微信.因为之前看过一篇博客讲微信web协议的,后来尝试分析了一下,半途中发现其实没什 ...
- 从BIRT报表文件中获取页面设置信息(页边距、纸张大小、输出方向)的方法
从BIRT报表文件中获取页面设置信息(页边距.纸张大小.输出方向)的方法 报表打印时,尤其是套打的报表,页面设置信息非常重要,比如页边距,纸张大小,输出方向等,而且每个报表的相关参数有可能不同 ...
- k8s 安装步骤
1 安装Docker 1.1 增加中国区镜像 https://registry.docker-cn.com 2 下载安装k8s的镜像的脚本 https://github.com/AliyunConta ...
- 虚方法(virtual)和抽象方法(abstract)的和接口(interface)的区别
虚方法(virtual)和抽象方法(abstract)的区别 2017年06月15日 13:41:26 阅读数:65 注:本文转载自 http://www.cnblogs.com/michaelxu/ ...
- jQuery实现简单的五星好评
最近一直在认真的努力工作,今天工作完成得差不多了,比较轻松点,在工作中有遇到用jq实现五星好评功能,觉得简单又有用,所以空闲时间就想分享出来. css部分: <style> .u_star ...
- 51Nod - 1046 (附关于快速幂的讨论)
题意: 给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = 3. 分析: 快速幂模板题. 快速幂: 1.自然数的拆分 对于任何的自然数, 可以把它用形如1001 ...
- 更新windows补丁时一直卡在搜索更新
在微软下载好安装补丁Windows8.1-KB2999226-x64后,双击时一直停留在“正在此计算机上搜索”界面. 解决方案: 1.将windows 自动更新设置为:“从不检查更新” . 2.关闭 ...