问题标签 [selection-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
15 回答
151848 浏览

javascript - 获取内容可编辑的插入符号位置

我找到了大量关于如何在元素中设置插入符号位置的跨浏览器的好答案contentEditable,但没有找到关于如何首先获得插入符号位置的答案。

我想要做的是知道 div 上的插入符号位置keyup。因此,当用户输入文本时,我可以随时知道contentEditable元素中插入符号的位置。

0 投票
2 回答
5847 浏览

javascript - 在javascript IE8中设置选择范围

我正在使用 div[contenteditable=true] 开发所见即所得的编辑器,我想设置从节点 A 的偏移 X 到节点 B 的偏移 Y 的选择范围。我在 Firefox 和 IE9 上做得很好,代码是:

但是在 IE8 上,范围对象就完全不同了,它没有 setStart/setEnd,选择对象也没有 remove/addRange 的东西。请帮忙,

0 投票
0 回答
90 浏览

javascript - HTML 选择 API - 添加
    要范围的元素

我们有以下 HTML 文档:

也可作为Plunker 使用

基本上,我们试图创建一个从 ul#list1 之前开始并在 ul#list2 之后结束的选择范围,其中两个列表都完全包含在内。使用此选择,我们将希望将此选择拖动到另一个放置区域。

从视觉上看,这似乎工作正常。但是,查看记录的文档选择,我们看到 anchorNode 是 ul#list1 的第 1 li,而 focusNode 是 p#par3。这意味着在设置拖动内容时,不包括ul#list1,而错误地包括了p#par3。

有没有办法使用选择 API 来完成我们想要的?

0 投票
2 回答
63 浏览

javascript - 选择 API 和范围 API 有什么区别?

我想知道选择 API 和范围 API 之间的主要用途区别是什么。

从下面的片段中,我们可以看到它们以某种方式相互关联。当您设置一个时,您会自动设置另一个属性。甚至他们的一些方法也非常相似。

问题

Selection API 和 Range API 之间的主要区别是什么?

0 投票
0 回答
28 浏览

javascript - 如何在 JavaScript 中在浏览器中创建选择?

选择API允许我获取当前选择window.getSelection()并编辑选择

例如,返回一个字符。

但是我如何才能使用选择 API 实际选择文本呢?

0 投票
1 回答
114 浏览

javascript - 选择 span 元素时,Javascript 选择 API :: containsNode() 不返回 true

我的问题是关于这个功能:https ://developer.mozilla.org/en-US/docs/Web/API/Selection/containsNode 我已经创建了这个沙箱:https ://codesandbox.io/s/amazing-bartik -smjt2?file=/src/index.js

代码:

我不明白为什么我应该在图像之前和之后至少选择一个字符,以便返回containsNode元素。这是预期的行为吗?选择时应该选择 span 元素,对吗?truespanimg

0 投票
0 回答
34 浏览

javascript - Firefox 中可能的选择 API 错误?

调用文档时。getSelection,生成的选择对象似乎返回 Firefox 中的前一个节点(查看 anchorNode 和 anchorOffset)

在 Safari/Edge 中选择(通过例如双击)“BBBBBBB”,然后单击按钮将在控制台中显示“BBBBBBB”和 anchorOffset 0,而在 Firefox 中它将显示“AAAAAAAA”和 9。我希望 Safari/Edge 的行为。

规范似乎对此没有任何说明。caniuse上没有列出怪癖。我做错了什么,或者这是我必须解决的FF中的错误?