gpt4 book ai didi

javascript - 设置范围 : the startContainer is wrong

转载 作者:行者123 更新时间:2023-11-28 02:39:24 24 4
gpt4 key购买 nike

这是我的代码:

var range = editor.selection.getRng();
range.setStart(range.startContainer, 2);

Chrome 一切正常,但在 Firefox 中我收到错误“索引或大小为负数或大于允许的数量”。在 Chrome 中,range.startContainer 是一个文本元素,在 Firefox 中它是 HtmlParagraphElement。

为什么在 FF 中会出现这种情况以及如何将此段落标签转换为文本?

我尝试过:

range.setStart(range.startContainer.firstChild, 2);

但它不起作用。

最佳答案

startContainer Firefox 的报告并没有错,只是不同而已。 startContainer理论上可以指任何类型的节点,并且不同的浏览器选择表示某些类型的选择的方式存在一些差异。

如果您想根据编辑器文本内容中的字符偏移量执行所有操作,可以使用类似 this answer 的内容。 。如果您只想针对这种特殊情况找到解决方案,我建议您只需检查 startContainer的节点类型。请注意,以下假设您的 <p> 的第一个 child 元素是一个文本节点:

var range = editor.selection.getRng();
var startNode = range.startContainer;
if (startNode.nodeType !== 3) {
startNode = startNode.firstChild;
}
range.setStart(startNode, 2);

关于javascript - 设置范围 : the startContainer is wrong,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12909622/

24 4 0
文章推荐: javascript - 是否可以使用带有phonegap的多个html页面?
文章推荐: html - Django 休息框架 : call delete method in a template
文章推荐: c++ - 在 C++ 中使用 pthread 查找数组的最大值
文章推荐: html - 使 链接填充
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com