检测是否使用javascript选择textarea内容

时间:2011-09-13 08:26:08

标签: javascript html textarea

我们有一些文本区域有一些用户可以复制到剪贴板的文本。

没有太多细节,因为它会使一个直截了当的问题复杂化:

是否可以检测textareas内容是否被“选中”?


我应该提到使用onclick(或其他)事件处理程序(理想情况下......)不是一个选项。

由于此文本是由“textarea外部”操作选择的。

流量有点如下:

选择下拉选项 - >选择textarea中的文本

OR

单击Textarea(onclick) - >选择textarea中的文本

我知道我们可以使用一大堆事件处理程序来检测textarea中文本的状态,但是希望通过js检测textarea中文本的状态有一种更简单的方法。


由于

3 个答案:

答案 0 :(得分:3)

selectionStartselectionEnd属性包含选择索引。

var textarea = document.getElementById("textarea1");
if(textarea.selectionStart == textarea.selectionEnd) alert("Nothing is selected!")

答案 1 :(得分:1)

看看这个demo。他们使用jQuery - fieldSelection插件。

答案 2 :(得分:1)

此代码取自this question,您需要稍微调整代码,但它会显示如何访问Mozilla和IE浏览器的选择 -

function ShowSelection()
{
  var textComponent = document.getElementById('Editor');
  var selectedText;
  // IE version
  if (document.selection != undefined)
  {
    textComponent.focus();
    var sel = document.selection.createRange();
    selectedText = sel.text;
  }
  // Mozilla version
  else if (textComponent.selectionStart != undefined)
  {
    var startPos = textComponent.selectionStart;
    var endPos = textComponent.selectionEnd;
    selectedText = textComponent.value.substring(startPos, endPos)
  }
  alert("You selected: " + selectedText);
}