我在项目中使用 CSS3 对列支持的支持(到目前为止,我发现它比大多数 JavaScript 解决方案更健壮和可靠)。
问题:是否有可能以任何方式获取特定列中的文本?
我在项目中使用 CSS3 对列支持的支持(到目前为止,我发现它比大多数 JavaScript 解决方案更健壮和可靠)。
问题:是否有可能以任何方式获取特定列中的文本?
还有……什么,两个月后?我终于找到了这个问题的答案。它依赖于document.caretRangeFromPoint (Webkit) 或 document.caretPositionFromPoint。
var getAllTextInColumn = function(rect){
/*
rect should be the size and x,y of the column
{ top, left, width, height }
*/
if(document.caretRangeFromPoint){
var caretRangeStart = document.caretRangeFromPoint(rect.left, rect.top);
var caretRangeEnd = document.caretRangeFromPoint(rect.left+rect.width-1, rect.top+rect.height-1);
} else {
return null;
}
if(caretRangeStart == null || caretRangeEnd == null) return null;
var range = document.createRange();
range.setStart(caretRangeStart.startContainer, caretRangeStart.startOffset);
range.setEnd(caretRangeEnd.endContainer, caretRangeEnd.endOffset);
return range.toString();
};
我唯一的猜测是开始用 替换空格SPAN
,然后检测该 SPAN 的垂直位置何时变小,然后您就知道您在下一列。最后一个 SPAN 成为列标记。
然后,您可以复制开始/结束和/或列制造商之间的文本。