我正在通过我的动态网页上的 rangy 保存选择。但是当我重新加载页面并恢复选择时,我收到以下错误:
错误:deserializeRange:序列化范围根节点 (f3909155) 和目标根节点 (c21b08a9) 的校验和不匹配
页面源根本没有改变,所有的 HTML 都是一样的。我正在使用 Tikiwiki CMS。有什么想法吗?
我正在通过我的动态网页上的 rangy 保存选择。但是当我重新加载页面并恢复选择时,我收到以下错误:
错误:deserializeRange:序列化范围根节点 (f3909155) 和目标根节点 (c21b08a9) 的校验和不匹配
页面源根本没有改变,所有的 HTML 都是一样的。我正在使用 Tikiwiki CMS。有什么想法吗?
要解决此错误,您需要将omitChecksum
参数传递给serializeSelection
函数。这将阻止 DOM 验证。serializeSelection
将返回选择的序列化形式,您可以将其保存在 DB 或 cookie 中。
请参见以下示例:
var selObj = rangy.getSelection();
var sel = rangy.serializeSelection(selObj, true);
DOM 可能在某些方面有所不同。确保在序列化之前没有修改选择,例如使用 rangy CssClassApplier。