Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在跨越多个标记的范围内环绕内容(getRangeAt问题?)_Javascript_Text_Range_Selection - Fatal编程技术网

Javascript 在跨越多个标记的范围内环绕内容(getRangeAt问题?)

Javascript 在跨越多个标记的范围内环绕内容(getRangeAt问题?),javascript,text,range,selection,Javascript,Text,Range,Selection,我有一个脚本(我认为)需要使用surroundContents来包装选择区域。这样做允许我附加一些内容,然后重新指定范围作为选择 我相信我已经将问题缩小到了对getRangeAt的滥用,但我不太确定如何纠正它 以下是简短的代码: function getRangeObject(selectionObject) { // Moz if (selectionObject.getRangeAt) { return selectio

我有一个脚本(我认为)需要使用surroundContents来包装选择区域。这样做允许我附加一些内容,然后重新指定范围作为选择

我相信我已经将问题缩小到了对getRangeAt的滥用,但我不太确定如何纠正它

以下是简短的代码:

        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

时,导致
范围引发异常的原因-可能就是这样。我阅读了您链接到的规范,但仍然不确定如何解决问题。是否有某种方法可以清除/完全选择抛出错误的非文本节点?也许我可以检测到部分选中的节点并以某种方式将其关闭?如果您能更准确地说出您要做的事情,可能会有所帮助。你想附加什么?在哪里?你能帮我解决这个问题吗?