使用jQuery在页面上(而不是在textarea中)获取所选文本

时间:2009-08-23 04:02:46

标签: jquery selection

This plugin可让您抓取用户在文本区域中选择的文本,this site包含非基于jQuery的说明,用于抓取用户在文本区域外选择的文本。

我想知道后者的功能是否可用于任何jQuery插件。

编辑:此外,是否可以获取选择的起始和结束索引?即,选择在包含元素内开始和结束的位置?

2 个答案:

答案 0 :(得分:6)

为此难以找到插件的原因并不是它不是非常“jQuery”。我的意思是jQuery插件通常在jQuery对象上运行,而选择与任何元素无关。

编辑:我错过了您在问题中发布此链接的事实,但我会将其保留为完整性,因为我的版本格式更好(但在其他方面相同)。 :)

<script language=javascript>
function getSelText() {
  var txt = '';
  if (window.getSelection) {
    txt = window.getSelection();
  } else if (document.getSelection) {
    txt = document.getSelection();
  } else if (document.selection) {
    txt = document.selection.createRange().text;
  } else return;
  document.aform.selectedtext.value =  txt;
}
</script>
<input type="button" value="Get selection" onmousedown="getSelText()"> 
<form name=aform >
<textarea name="selectedtext" rows="5" cols="20"></textarea>
</form>

答案 1 :(得分:3)

复制和粘贴代码片段并没有什么问题,这是大多数人开始的方式,你会继续这样做,直到你熟悉你粘贴的片段,你将开始修改位和部分,甚至从自己划伤。

对于那段特殊代码,除了不依赖于内联事件处理程序和不明显地使用jQuery添加'mousedown'之外,我没有看到复制它的任何错误。