Javascript Range.deserializeSelection校验和错误?

Javascript Range.deserializeSelection校验和错误?,javascript,rangy,Javascript,Rangy,这是一个问题的后续问题。我已序列化了iframe中的文本选择并希望还原它,但它给了我一个错误,“未捕获错误:反序列化范围范围:序列化范围根节点(XXXXX)和目标根节点(XXXXX)的校验和不匹配” 演示:您需要提供窗口对象作为第三个参数: rangy.deserializeSelection(serializeSelection, null, iframe.contentWindow); 演示: 这比应该的更尴尬。版本1.3允许您使用iframe而不是iframe.contentWindow

这是一个问题的后续问题。我已序列化了iframe中的文本选择并希望还原它,但它给了我一个错误,“未捕获错误:反序列化范围范围:序列化范围根节点(XXXXX)和目标根节点(XXXXX)的校验和不匹配”


演示:

您需要提供窗口对象作为第三个参数:

rangy.deserializeSelection(serializeSelection, null, iframe.contentWindow);
演示:

这比应该的更尴尬。版本1.3允许您使用
iframe
而不是
iframe.contentWindow
,但它仍然太难阅读,因此我将以某种方式对此进行改进。

关于“未捕获错误:反序列化范围:序列化范围根节点(XXXXX)和目标根节点(XXXXX)的校验和不匹配”错误:

应对相同格式和类型的文本执行Rangy序列化和反序列化。有时,文本、格式或css在反序列化时可能会发生更改。所以你必须注意你的文字。在使用Iframe时,请在文本加载到Iframe中后调用这些方法一次。我们所做的错误是在页面加载后序列化文本,而在反序列化时,我们尝试在iframe加载后反序列化文本。在开始反序列化之前,只需检查iframe是否加载了内容

rangy.deserializeSelection(serializeSelection, null, iframe.contentWindow);