如何在textarea中获取选定的文本?
这个问题在这里已经有了答案:
试试jquery-fieldselection插件。
你可以在这里下载。 也有一个例子。
使用Firefox获取<textarea>
的选定内容:
function getSel() // javascript
{
// obtain the object reference for the <textarea>
var txtarea = document.getElementById("mytextarea");
// obtain the index of the first selected character
var start = txtarea.selectionStart;
// obtain the index of the last selected character
var finish = txtarea.selectionEnd;
// obtain the selected text
var sel = txtarea.value.substring(start, finish);
// do something with the selected content
}
window.getSelection().toString()
适用于Chrome,但不适用于Firefox。
参考:
处理选择对于不同的浏览器是不同的:
var userSelection;
if (window.getSelection) {
userSelection = window.getSelection();
}
else if (document.selection) { // Opera
userSelection = document.selection.createRange();
}
这给你一个范围对象。 每个范围表示一个选择(使用控制/命令键可以进行多个活动选择)。
您现在拥有的范围对象的类型取决于哪个浏览器。 对于IE来说,它是一个文本范围对象; 对其他人来说它是一个Selection对象。 要将Selection对象转换为文本范围,可以调用getRangeAt; 对于Safari,您需要构建:
var range;
if (userSelection.getRangeAt)
range = userSelection.getRangeAt(0);
else { // Safari
range = document.createRange();
range.setStart(userSelection .anchorNode, userSelection.anchorOffset);
range.setEnd(userSelection.focusNode, userSelection.focusOffset);
}
范围对象为您提供选择的开始和结束dom元素和文本偏移量。
有关范围对象的更多信息可以在quirksmode.org上找到
如果您使用的是jQuery,您可能需要查看Batiste Bieler提供的轻量级jQuery RTE插件。 它可能足以满足您的需求,或者至少可以为您提供一些开始。
链接地址: http://www.djcxy.com/p/41625.html