Range、Selection、TextRange对象的区别与关系

Burp靶场实战:JWT签名绕过漏洞分析与利用 本文通过Burp Suite靶场实战,深入剖析了JWT签名绕过漏洞的多种攻击手法,包括签名未验证、alg:none攻击、弱密钥爆破、JWK/JKU头注入、KID路径遍历及算法混淆攻击。文章详细演示了利用过程,并提供了关键的防御指南,帮助开发和安全人员加固JWT实现,确保认证安全。 阅读详情

Range、Selection、TextRange对象的区别与关系

什么是Range

所谓Range,是指HTML文档中任意一段内容。一个Range的起始点和结束点位置任意,甚至起始点和结束点可以是一样的(也就是空Range)。最常见的Range是用户文本选择范围(user text selection)。当用户选择了页面上的某一段文字后,你就可以把这个选择转为Range。当然,你也可以直接用程序定义Range。每一个浏览器窗口及每一个窗口中都有一个selection对象,代表用户鼠标在页面中所选取的区域。

什么是Selection

Selection对象一般由window.getSelection()或其他方法产生。它代表页面中的文本选区,可能横跨多个元素。文本选区由用户拖拽鼠标经过文字而产生。 如果你想了解关于其他容纳纯文本的表单元素中的选区操作。Selection对象所对应的是用户所选择的 ranges(区域),俗称拖蓝。默认情况下,该函数只针对一个区域。
Selection简单点来说就是用户通过鼠标拖拽出来的文本区域

什么是TextRange

大多情况下,你希望Range对象就代表用户选择区域。在微软IE模式下已经是这样了,userSelection就是一个TextRange对象,然而,在W3C的标准浏览器下,userSelection仍然是一个Selection对象。创建Range对象,我们要这么处理

var rangeObject = getRangeObject(userSelection);

function getRangeObject(selectionObject) {
    if (selectionObject.getRangeAt) return selectionObject.getRangeAt(0);
    else { // Safari!
        var range = document.createRange();
        range.setStart(selectionObject.anchorNode, selectionObject.anchorOffset);
        range.setEnd(selectionObject.focusNode, selectionObject.focusOffset);
        return range;
    }
}

所以说TextRange是Range对象在IE下代表用户选择的区域document.selection.createRange()
例:获得用户选择内容

var userSelection;
if (window.getSelection) { //现代浏览器
    userSelection = window.getSelection();
} else if (document.selection) { //IE浏览器 考虑到Opera,应该放在后面
    userSelection = document.selection.createRange();
}

三者之间的关系

range和selection的关系,range是一个范围比selection宽广的对象,两者是两个完全不同的对象。虽然说range和selection是两个不同对象,但是为了好理解,可以简单的理解为range对象包含selection对象。因为,range对象可以通过selection对象来获得,即,用户只要用鼠标拖拽选中一行文本,就能通过这行选中的文本创建一个range对象。如果用户没有通过鼠标拖拽的方式选中文本,也可以通过Document 对象的createRange方法创建一个range对象,一旦创建了Range对象,我们就可以通过它对所选文本或者html内容进行拷贝、修改或者删除操作
而TextRange对象就是Range对象在IE下特殊的表现

创建Range的2种方法:

1、 通过selection创建

var selection=window.getSelection();
var range=selection.getRangeAt(0);

2、通过Document 对象的createRange方法创建

var range=document.createRange();
江科大51单片机笔记【1】单片机及开发板介绍 单片机,Micro Controller Unit,简称MCU,内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能单片机的任务是信息采集(传感器)、处理(CPU)和硬件设备(电机、LED)的控制单片机算是一个袖珍版计算机,是一个完整的计算机系统,成本低体积小结构简单单片机的使用领域:智能仪表、实时工控、通讯设备、导航系统、家用电器等。 阅读详情

相关推荐

TC397 EB配置ADC软件触发:从零实现周期采样与中断处理

本文详细介绍了如何在Infineon AURIX TC397芯片上使用EB Tresos工具配置ADC软件触发,实现周期采样与中断处理。通过硬件连接、EB模块配置、代码初始化及数据处理的全流程解析,帮助开发者快速掌握ADC软件触发技术,提升嵌入式系统开发效率。

root9的博客 231

TextRange对象参考

原文来自TextRange object。 textRange对象代表document中一个连续的部分。 TextRange对象为实现一些实用功能提供了几个属性和方法。利用TextRange对象,你可以取得并修改文档的任意部分;你可以得到文档中的一个连续部分的定位以及一些其它的几何属性;你可以取得并修改文档中已选中的内容。 Inter...

weixin_34007906的博客 490

Python 打包与发布陷阱:如何用 setuptools 和 PyInstaller 生成跨平台可执行文件?

使用。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1207

富文本编辑器开发系列7——textRange对象详解

在浏览器和更早版本的浏览器中,是没有提供用来表示选区的对象的的,但是它们依旧有可编辑区域的相关能力,是因为它们提供了另一个对象接口:对象[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WYpG3x4R-1655347848546)(https://gitee.com/hjb2722404/tuchuang/raw/master/img/20201210162002.png)]我们先直观地看一下这些属性。我们有下面一段代码: 再来看页面中选中一个选区后各个属性所指向的从上面的思维

林中路 952

信创迁移实战:在银河麒麟V10-SP1上为Milvus离线部署Docker(附SP1专属避坑指南)

本文详细介绍了在银河麒麟V10-SP1 x86_64环境下离线部署Docker的全流程,特别针对该版本特有的自定义目录安装失败问题提供深度分析和解决方案。通过实战验证的步骤和避坑指南,帮助用户在信创项目中顺利完成Milvus等应用的容器化部署。

weixin_30687051的博客 532

TCP Reno/CUBIC 拥塞控制算法对比:从 Tahoe 到 BBR 的 4 种核心策略演进

本文深入解析了TCP拥塞控制算法的演进历程,从经典的Tahoe、Reno到现代的CUBIC和BBR,详细对比了4种核心策略的实现机制与性能差异。通过分析拥塞窗口、流量控制等关键技术,揭示了不同算法在高带宽延迟网络中的优化方向,为网络协议栈优化提供理论依据和实践指导。

weixin_33725239的博客 439

Web APIs 之 Selection对象和Range对象

Selection对象存储了用户在网页上选择的文本范围或者光标符号的位置等信息,代表网页中的文本选区,可能横跨多个元素,包含文本、图片等等。文本选区是由用户点击鼠标左键并拖拽鼠标选中页面内容产生的,也就是指页面上变成蓝底的那一部分内容。 Range对象表示一个包含节点与文本的文档片段,通常与Selection对象结合使用,Selection对象选中的文本选区所对应的文档片段,就是一个Range对象。

weixin_45092437的博客 1713

MuJoCo 入门教程(二)

本章介绍 MuJoCo 的数学和算法基础。对于熟悉广义或关节坐标建模和仿真的读者来说,整体框架是相当标准的。因此,我们将对这些材料进行简要总结。本章的大部分篇幅用于介绍我们如何处理接触和其他约束条件。这种方法是基于我们最近的研究,也是 MuJoCo 所独有的,因此我们花时间对其进行了详细的激励和解释。更多信息可参见下面的论文,尽管本章中的一些技术思想是新的,在其他地方还没有描述过。

机器人控制与仿真应用 3712

JavaScript 选择范围:SelectionRange

文本选择是 web 开发中的一个常见需求,例如高亮选定文本、复制粘贴文本、实现文本编辑器等。传统的 JavaScript 方法无法满足所有场景的需求,例如无法获取选定文本的范围、无法操作选定内容等。是浏览器提供的一个 API,用于解决文本选择问题。它可以获取或设置选中的文本、操作选定内容以及扩展或缩小选定范围。理解 SelectionRange的工作原理和应用场景,对于开发人员来说至关重要。掌握 SelectionRange 的工作原理了解如何使用 SelectionRange 获取选定文本的范围。

爱蹦跶的全栈大A阿 2136

海洋浮游生物识海洋浮游生物识别系统:基于YOLOv10的显微图像自动检测与UI别系统:基于海洋浮游生物识别系统:基于YOLOv10的显微图像自动检测与UI展示YOLOv10的显微图像自动检测与UI展示

本文介绍了如何利用YOLOv10模型进行海洋浮游生物的自动识别,旨在提高传统显微镜观测的效率与准确性。研究背景强调了浮游生物在海洋生态系统中的重要性,并指出传统方法的局限性。数据集选用WHOI-Plankton,包含70多种浮游生物的20000多张带标签图像。文章详细描述了YOLOv10模型的安装、数据集配置、训练与测试步骤,并提供了基于PyQt5的图形化检测界面代码。结果显示,模型在精度、召回率和mAP@0.5等指标上表现优异,推理速度达到约30 FPS。最后,文章提出了部署建议和未来优化方向,如集成摄像

YOLO 375

Python爬虫:实时交通流量数据爬取与路况分析

随着城市化进程的不断推进,交通流量的管理与预测已成为智能交通系统的重要研究方向。交通流量数据不仅为城市交通管理提供了科学依据,还为驾驶员提供了实时路况信息,帮助其做出更加合理的出行决策。通过爬虫技术,我们可以实时获取城市的交通流量数据,从而分析路况,优化交通管理。在这篇博客中,我们将介绍如何使用Python编写一个爬虫来爬取实时交通流量数据,分析道路的交通状况。我们将使用最新的技术工具来构建爬虫,包括。

2201_76125261的博客 1267

Selection和Range对象

前言     其实在对word操作的时候Range对象用到的是最多的, 又由于Range对象与 Selection对象共享许多相同的方法和属性,所以今天我们将他俩放到一起来介绍下,看看他们有哪些共同和不同的地方。 正题 1.处理 Selection对象      用 Word 处理文档时,通常先选定文字,然后对所选内容进行操作,例如设置文字格式或键入文字。在 Visual Bas

赵丹丹 廊坊师范学院信息技术提高班 七期 3441

YOLOv8 交通违规检测各个场景的实际应用

本文介绍了基于YOLOv8的交通违规检测系统在不同场景下的应用实现。系统可检测闯红灯、超速、违停和不系安全带等多种违规行为,针对每种场景提供了具体的技术方案和Python实现代码。其中闯红灯检测结合信号灯状态分析,超速检测通过距离时间计算速度,违停检测采用长时间跟踪策略,安全带检测则需更高精度识别。文章还展示了如何整合各功能构建综合交通监管系统,并总结了不同应用场景的技术要点和优化方向,为智能交通管理提供了实用解决方案。

u010117029的博客 299

JavaScript 中的 Range 和 Selection 对象

最近在做鼠标框选的需求,鼠标框选就需要用到Range和Selection对象。Range表示选择的区间范围,Selection表示选择的文档内容。下面就详细说下这两个对象。

guoqkmiss的博客 2279

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Range对象与Selection对象

一、Range对象 一个Range对象代表页面上的一段连续区域。通过Range对象,可以获取或修改页面上的任何区域。   二、Selection对象 每一个浏览器窗口及每一个窗口中的页面都具有一个selection对象,代表用户鼠标在页面中所选取的区域。 通过语句得到该Selection对象: var selection = document.getselection();   ...

iteye_2383的博客 894

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

详探TextRange对象--查找与选择

table td {background-color:#EEEEEE;font-size:14px}.style1 { font-size: large; font-weight: bold;}.style6 {font-size: 12px}.style7 {color: #FF0000}.style8 { color: #00

人生如梦,一樽还酹江月 5919

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

TextRange对象与Range对象的使用

今天看到对TextRang对象和Range对象的说明,写的不错,可惜文中的举例的html代码格式太乱,很难阅读,这里整理下,方便以后的阅读。 TextRange对象是动态HTML(DHTML)的高级特性,使用它可以实现很多和文本有关的任务,例如搜索和选择文本。文本范围让您可以选择性的将字符、单词和句子从文档中挑选出来。TextRange对象是在HTML文档将要显示的文本流上建立开始和结束位置的抽

0溺水的鱼O的专栏 4133

比较深入的认识一下textrange

textrange是一个很有用的玩意,今天仔细研究了一下,弄了几个典型的例子,估计都是有可能被用到的情形。直接拷贝下面的代码到一个html文件就可以运行测试。写的比较粗。参考了1篇比较好的文章:http://blog.sina.com.cn/s/blog_4b8d35b70100a047.html~type=v5_one&label=rela_nextarticledocument.b

sunxing007的专栏 6629

(转)使用TextRange对象

 使用TextRange对象一 对于文本处理,许多用户都只使用the innerText/innerHTML 和 outerText/outerHTML 属性和它的相关方法,然而使用文本范围对象将有许多高级的文本操作。TextRange对象可以如下使用: 1、定位给定元素或给定点的文本 2、在文档字符里查找单词或字符 3、移动逻辑单元里的文本 4、提供文档里平常的文

溺水的鱼 - Later equals never. 1027

深入解析Rangy TextRange模块:文本选择与操作实战指南

Rangy库的TextRange模块为开发者提供了强大的文本选择和操作能力,本文将深入解析该模块的核心功能并通过实际案例展示其应用场景。 ## 一、TextRange模块概述 TextRange模块是Rangy库的重要组成部分,它扩展了浏览器原生的文本选择功能,提供了以下核心能力: 1. 精确的字符级和单词级文本选择 2. 高级文本搜索与高亮功能 3. 基于字符索引的选择保存与恢复 4. 光

gitblog_01192的博客 608

使用TextRange获取输入框中光标的位置

    TextRange是用来表现HTML元素中文字的对象,虽然我们平时不太常用这个对象,可是它却在IE4.0中就已提供了。不过TextRange提供的调用方法却都比较晦涩,那么我们能拿它做些什么呢?     TextRange的传统用途是对用户在Web页上用鼠标圈选的文字内容的操作,比如变化、删除、新增等。但其经典的用途却是,在Web页面中查找文字(这个比较简单)和获取输入框光标的位置。其中后...

weixin_34242658的博客 170

【Word Vba】关于range与selection的一些心得

在下述代码中,如果selection没有加range,则循环一次就会退出循环,因为光标位置动了之后,selection里就没有任何东西了。而加了range不同,因为始终是那几个范围(在不改变段落数的情况下)。1、Characters、Words、Sentences 集合中的每一项均为代表一个 Range 对象。不存在 Character、Word 、Sentence对象。3、如果范围内段落数改变了,不建议深入研究,只要记住有段落对象有paraID这个属性。

dasfsdfgh的博客 1079

TextRange对象

TextRange对象的属性和方法定义如下:       htmlText属性: 对应于TextRange对象区域内的文本和HTML代码.该属性可读可写,可以通过对该属性赋新值来改变TextRange区域内的HTML代码内容.       Text属性: 对应于TextRange对象区域内的文本内容(忽略其中的HTML代码).该属性同样是可读可写的,可以通过Text属性赋新值的方法来改变Tex...

青木的博客 2642

Word控件Spire.Doc 【页面设置】教程(1):在C#/VB.NET:在 Word 文档中插入分页符

分页符是控制一页结束位置和新页面开始位置的标记。如果要将某个位置之后的内容移动到 Word 文档的下一页,可以插入分页符。在本文中,您将学习如何使用Spire.Doc for .NET库在 C# 和 VB.NET 中的 Word 文档中插入分页符。首先,您需要添加 Spire.Doc for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过NuGet安装。

励志做最业余的专业博主,控件产品可以私我~ 1168

如何使用 Range 和 Selection API 精确管理光标位置和选区

Range 和 Selection API 是浏览器提供的用于处理用户文本选区和光标位置的强大工具。Range: 表示文档中的连续区域,可以包含部分节点和文本节点;Selection: 表示用户当前选择的文本范围,通常包含一个或多个 Range 对象。

Chloeeeeeeee的博客 1985
上一篇: Selection对象
下一篇: Canvas时钟
chentian888
博客等级 码龄11年 16粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值