我试图找到我所选择起点的x-y位置。 我曾尝试使用rangy-position.js(http://rangy.googlecode.com/svn/trunk/demos/position.html)并且还包含了它所需的支持js文件。
以下是我在网页上提供的脚本。
<script type="text/javascript">
function showSelectionPosition() {
var wholeSelRectEl, startSelEl, endSelEl;
// Draw an element representing the whole selection rectangle
var wholeSelRect = rangy.getSelection().getBoundingDocumentRect();
//removeSelectionIndicators();
if (!wholeSelRect) {
return;
}
var startPos = rangy.getSelection().getStartDocumentPos();
alert("y pos:" + startPos.y);
var endPos = rangy.getSelection().getEndDocumentPos();
}
</script>
在mouseup上,showSelectionPosition()的调用如下:
$('#container').mouseup(function(f) {
showSelectionPosition();
});
还要注意#container中包含很多div元素,它们最终都有我想要选择的文本。 问题是我收到以下错误:
Uncaught TypeError: Cannot read property 'y' of null
任何帮助将不胜感激。
答案 0 :(得分:0)
将选区放在一个范围内,然后在其上使用getBoundingDocumentRect()。
var sel = rangy.getSelection();
var range = sel.getRangeAt(0).cloneRange();
var rect = range.getBoundingDocumentRect();
alert("y pos:" + rect.top);