在html中获取选择的位置

时间:2014-03-24 16:39:23

标签: javascript jquery

我需要这个位置或者让我们说一个html容器(也包含html)中所选文本的开始和结束时间。 例如:

<span id="text-for-selection">
  <h1>Heading</h1>
  <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.</p>
  <p>Aenean massa.</p>
  <p>Aenean massa.</p>
  <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </p>
</span>

如果我选择第一个&#34; Aenean massa。&#34;现在,我需要知道文本选择容器中的第一个选定字母的位置(包括html标签!!) - 不仅仅在<p>标签内。 我试图搜索它,但如果我选择第二个,选择哪个呢? 我知道如何获取所选文本或如何将html添加到选择或如何替换所选文本。 但我不知道如何获得量程容器内的范围/偏移量。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你在javascript中尝试过indexOf吗?这是示例

<html id="html">
<body>

<span id="text-for-selection">
  <h1>Heading</h1>
  <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.</p>
  <p>Aenean massa.</p>
  <p>Aenean massa.</p>
  <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </p>
</span>


<button onclick="myFunction()">Try it</button>

<script>
function myFunction()
{
var str=document.getElementById('html').innerHTML;

var n=str.indexOf("Aenean massa.");
alert(n);
}
</script>

</body>
</html>

这是纯粹的Javascript。你也可以使用Jquery

答案 1 :(得分:0)

这会是你想要的东西吗? http://code.google.com/p/rangy/wiki/RangySelection