javascript - 浏览器中范围和选择的区别

标签 javascript html browser selection range

我想知道 JavaScript 中范围对象和选择对象之间的区别。

在我看来,您可以从这两者中获得相同的功能。在哪种情况下,您在特定情况下知道使用两者中的哪一个?

最佳答案

根本区别在于 Selection代表用户的选择,而Range表示文档的连续部分独立于任何视觉表示Selection可以(几乎)用零个、一个或多个来表示Range s 但也可以完全独立于选择来创建和修改范围。

在功能上有一些重叠:例如,SelectiondeleteFromDocument()相当于调用deleteContents()在其所有组件范围上,您可以使用 anchorNode 获取选择中最近选择的范围的边界。 , anchorOffset , focusNodefocusOffset特性。但是,有一些重要的区别:

  • A Selection可能包含多个范围。但是,目前唯一支持此功能的主要浏览器是 Firefox。
  • A Selection可能是“向后”,我的意思是选择的结束边界(由 focusNodefocusOffset 表示)在文档中可能比开始边界( anchorNodeanchorOffset )出现得更早。范围没有方向。
  • toString()工作方式不同。在大多数浏览器中(尽管明显不是 IE 9),调用 toString()Selection 上对象仅返回选定的可见文本,同时调用 toString()在 Range 上将返回范围内所有文本节点的串联,包括 <script> 内的那些元素和通过 CSS 隐藏的元素。

关于javascript - 浏览器中范围和选择的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5573030/

相关文章:

Javascript:重新缩放时保持元素在父 div 中的位置

php - 如何以安全的方式将 id 存储在隐藏值上

php - 如何使用 Behat 和 Mink PHP 处理浏览器窗口或选项卡

javascript - NodeJS 和 GraphicsMagick : resize() destroys image quality

javascript - AJAX 安全规范

基于Javascript的数据表

c# - 使用 WebBrowser Winforms 控件通过 SSL 访问内网

html - Chrome 和 Firefox 上的 CSS3 Transitions 在 Optimus 或 Intel IGP 配置中表现不佳。怎么修?

javascript - 有没有办法在后端为前端创建 DOM 元素?

C# 如何在不打开浏览器的情况下搜索某些内容,然后转到第一个搜索结果?