Javascript 在跨越多个标记的范围内环绕内容(getRangeAt问题?)
我有一个脚本(我认为)需要使用surroundContents来包装选择区域。这样做允许我附加一些内容,然后重新指定范围作为选择 我相信我已经将问题缩小到了对getRangeAt的滥用,但我不太确定如何纠正它 以下是简短的代码:Javascript 在跨越多个标记的范围内环绕内容(getRangeAt问题?),javascript,text,range,selection,Javascript,Text,Range,Selection,我有一个脚本(我认为)需要使用surroundContents来包装选择区域。这样做允许我附加一些内容,然后重新指定范围作为选择 我相信我已经将问题缩小到了对getRangeAt的滥用,但我不太确定如何纠正它 以下是简短的代码: function getRangeObject(selectionObject) { // Moz if (selectionObject.getRangeAt) { return selectio
function getRangeObject(selectionObject) {
// Moz
if (selectionObject.getRangeAt) {
return selectionObject.getRangeAt(0);
}
这是第89行,它向我抛出了一个错误:
rangeObject.surroundContents(newNode);
当然,这里有一个错误:
错误:未捕获异常:
[例外情况…”的边界点
范围不符合特定的要求
要求。“代码:“1”nsresult:
“0x805C001
(NS\u错误\u DOM\u范围\u错误\u边界点\u错误)
地点:
"
行:89“]
如果有助于了解整个过程,您可以在此处查看脚本(到目前为止):
我使用的文本选择助手是quirksmode,它没有详细说明多个范围的使用
提前感谢您的帮助。我认为错误消息很好地描述了问题。描述在使用
surroundContents
时,导致范围引发异常的原因-可能就是这样。我阅读了您链接到的规范,但仍然不确定如何解决问题。是否有某种方法可以清除/完全选择抛出错误的非文本节点?也许我可以检测到部分选中的节点并以某种方式将其关闭?如果您能更准确地说出您要做的事情,可能会有所帮助。你想附加什么?在哪里?你能帮我解决这个问题吗?