我感觉不太符合JS,所以我需要你的帮助来获得解决方案。
我必须从用户那里获取有关其文本选择的日志,并在html页面中进行复制。然后我需要为每个选择获得一个唯一的位置(因为2个选项可以包含相同的文本并且位于不同的位置)。
在我的JS脚本中,我有一个函数,它返回一个对象“range”。我可以使用范围的“startOffset”和“endOffset”来获取选择的第一个和最后一个元素的位置,但是这些偏移仅从节点的开始(例如p或h1)确定。
所以我的问题是:有没有办法从整个html页面的开头获得补偿?
这是我的代码:
function getSelectionRange() {
var range;
if (window.getSelection) {
range = window.getSelection().getRangeAt(0);
} else if (document.selection && document.selection.type != "Control") {
range = document.selection.getRangeAt(0);
}
return range;
}
$(document).bind('copy', function() { // detects the copy
var range = getSelectionRange();
alert(range.startOffset+" "+range.endOffset);
// then save in logs
});
提前致谢