我使用Rangy.js保存我在数据库中的选择(序列化格式)
var oSelection = rangy.getSelection();
var oRange = oSelection.getRangeAt(0)
$.ajax({
url : 'save_selection.php',
type : 'POST',
async: false,
data : {
data: rangy.serializeRange(oRange, true, $("#Text")[0]),
}
});
重新加载我的页面之后,我得到了之前的选择,我使用了高亮的rangy模块来创建带有id的id(id是数据库中的选择主键),并且在我的页面中使用.highlight类来表示样式。
但我有一个问题,当我点击一个跨度我想要删除我在我的数据库中的选择,所以我删除了一个span我知道DOM更改然后我在我的数据库中更新我的数据:
var aHighlights = {};
$(".highlight").each(function() {
var oRange = rangy.createRange($(this)[0]);
var iRangeId = $(this).attr("id");
aHighlights[iRangeId] = rangy.serializeRange(oRange, true, $("#Text")[0])
});
$.ajax({
type: 'POST',
url: 'update_selection.php',
async: false,
data: {
highlights: aHighlights
}
});
但是在重新加载我的页面之后我有这个错误:
Uncaught IndexSizeError:无法在'Range'上执行'setEnd':偏移1处没有子项。