我们有一些文本区域有一些用户可以复制到剪贴板的文本。
没有太多细节,因为它会使一个直截了当的问题复杂化:
是否可以检测textareas内容是否被“选中”?
我应该提到使用onclick(或其他)事件处理程序(理想情况下......)不是一个选项。
由于此文本是由“textarea外部”操作选择的。
流量有点如下:
选择下拉选项 - >选择textarea中的文本
OR
单击Textarea(onclick) - >选择textarea中的文本
我知道我们可以使用一大堆事件处理程序来检测textarea中文本的状态,但是希望通过js检测textarea中文本的状态有一种更简单的方法。
由于
答案 0 :(得分:3)
selectionStart
和selectionEnd
属性包含选择索引。
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);
}