如何获取textarea中的当前选定文本(并对其进行修改)?获取当前选中的文本
我见过可以被监听的select事件,但我想知道是否有办法获取当前选中的文本。
此外,你需要使用什么技术才能在textarea中修改文本的特定部分?我认为有一些方法可以找出选择的位置在整个textarea的内容中的位置?
我想要做的就是选择并修改它,或者将它包装在特定的标签等中,就像您在堆栈交换文本编辑器中所做的那样。
如何获取textarea中的当前选定文本(并对其进行修改)?获取当前选中的文本
我见过可以被监听的select事件,但我想知道是否有办法获取当前选中的文本。
此外,你需要使用什么技术才能在textarea中修改文本的特定部分?我认为有一些方法可以找出选择的位置在整个textarea的内容中的位置?
我想要做的就是选择并修改它,或者将它包装在特定的标签等中,就像您在堆栈交换文本编辑器中所做的那样。
我已经发布了我认为在堆栈溢出所有浏览器(包括IE < 9)上执行此操作的权威函数。这里有一个例子:
IE's document.selection.createRange doesn't include leading or trailing blank lines
我也建议my jQuery plug-in这一点,其中包括这个功能和其他插入,删除,环绕或替换选定的文本,这听起来像你想要什么。它也是唯一的jQuery插件的textarea选择我知道这可以正常使用IE中的换行符工作。
在此页面中
http://www.netadmintools.com/art466.html
function display(txtarea) {
var sl = (txtarea.value)
.substring(txtarea.selectionStart, txtarea.selectionEnd);
}
<body onload="thisForm=document.frmKey;">
jQuery的字段选择插件.. Download Here例子在现场。
如果您只需要支持最新的浏览器,则可以使用selectionStart
和selectionEnd
属性,这些属性显示textarea中选定文本的字符位置。您不能仅修改所选文字,而是更新了可使用setSelectionRange
重新选择文字的值。
感谢'setSelectionRange'提示 – Acorn
为了更加具体地了解浏览器,'selectionStart'和'selectionEnd'在除IE <9之外的所有主要事物中都很好。另外,'selectionStart'和'selectionEnd'是可写的,所以您可以使用它们或'setSelectionRange()'。我不知道为什么冗余存在。 –
The :: selection selector也可以。 http://www.w3schools.com/cssref/sel_selection.asp
fieldselection插件在IE <9中无法正常工作,并且换行符为空。 –