【问题标题】:Javascript check if text selected [closed]Javascript检查是否选择了文本[关闭]
【发布时间】:2012-02-22 08:42:11
【问题描述】:

我正在寻找一个简单的函数(javascript / jquery)来检查文本区域的任何内容是否被选中或突出显示......该函数需要返回 true 或 false。

谢谢:)

【问题讨论】:

标签: javascript jquery


【解决方案1】:

试试这个

function isTextSelected(input){
   var startPos = input.selectionStart;
   var endPos = input.selectionEnd;
   var doc = document.selection;

   if(doc && doc.createRange().text.length != 0){
      return true;
   }else if (!doc && input.value.substring(startPos,endPos).length != 0){
      return true;
   }
   return false;
}

用法

if(isTextSelected($('#textareaId')[0])){
   //text selected
}

Demo

【讨论】:

  • 即使取消选中文本,也会继续返回选中状态!
  • 我看到了与@thatsalok 所述相同的行为。不过,我会寻找解决方案
  • @thatsalok - 由于警报,文本失去焦点但仍处于选中状态。它看起来不像,但它是真的。在演示中尝试在警报 $('#textareaId')[0].focus(); 之后添加这一行您将再次看到您的选择。您可以通过选择 0 个字符来放松您的选择(换句话说,将光标放在文本区域的某处)。我做了一个小提琴更新:jsfiddle.net/qDvYt/184
  • @ShankarSangoli 截至2019年,您可以使用最新的codepen.io/faizanrupani/pen/ZVwGyV
猜你喜欢
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-07
  • 2011-10-24
  • 2011-05-09
  • 2017-11-01
  • 2018-08-30
相关资源
最近更新 更多