📅  最后修改于: 2023-12-03 15:07:14.459000             🧑  作者: Mango
从Chrome 92 开始,Selection
接口的 addRange()
方法不再支持合并现有 Range
和指定 Range
的行为。这意味着,调用 addRange()
方法将替换先前添加的 Range
,而不是将其合并。
addRange()
方法用于将一个 Range
对象添加到选定内容的范围中。如果前一个 Range
范围仍然存在,则调用 addRange()
方法时,旧的范围将与新的 Range
范围合并。在这种情况下,新范围被添加到最后一个范围的结尾处。
在Chrome 92之前,addRange()
方法合并了新的 Range
范围和现有范围。在Chrome 92中,这种行为已经被删除。
这项更改可能会影响那些依赖于 addRange()
方法合并 Range
范围的应用程序。由于该行为已被删除,这些应用程序需要更新其代码以处理 addRange()
方法的新行为。
如果您的应用程序依赖于 addRange()
方法合并 Range
范围,您需要更新您的代码以处理新的行为。如果您希望将新的 Range
范围添加到选定内容的末尾而不是替换现有范围,请考虑使用以下代码:
const selection = window.getSelection();
const range = document.createRange();
range.selectNode(document.getElementById("myElement"));
selection.extend(range.endContainer, range.endOffset);
selection.addRange(range);
这段代码使用 extend()
方法将选定内容的结束位置扩展到新加入的 Range
所在位置。这允许新的 Range
范围被添加到选定内容末尾。
从Chrome 92开始,Selection
接口的 addRange()
方法不再支持将新的 Range
范围与现有范围合并的行为。这将影响那些依赖于 addRange()
方法合并 Range
范围的应用程序。为了解决这个问题,开发者需要更新他们的代码以适应新的行为。