您将如何在 textarea 中获取当前选定的文本(并对其进行修改)?
我已经看到了可以监听的 select 事件,但我想知道是否有办法只获取当前选定的文本。
此外,您需要使用什么技术才能修改文本区域内的特定文本部分?我假设有一些方法可以找出整个文本区域内容中选择的位置是什么?
我想要做的是选择并修改它,或者将它包装在某些标签等中,就像你可以在 stackexchange 文本编辑器中做的那样。
您将如何在 textarea 中获取当前选定的文本(并对其进行修改)?
我已经看到了可以监听的 select 事件,但我想知道是否有办法只获取当前选定的文本。
此外,您需要使用什么技术才能修改文本区域内的特定文本部分?我假设有一些方法可以找出整个文本区域内容中选择的位置是什么?
我想要做的是选择并修改它,或者将它包装在某些标签等中,就像你可以在 stackexchange 文本编辑器中做的那样。
如果您只需要支持最新的浏览器,您可以使用selectionStart
和selectionEnd
属性来显示在 textarea 中选择的文本的字符位置。您不能只修改选定的文本,而是更新了可用于setSelectionRange
重新选择文本的值。
我已经多次在 Stack Overflow 上发布了我认为在所有浏览器(包括 IE < 9)中执行此操作的最终功能。这是一个例子:
IE 的 document.selection.createRange 不包括前导或尾随空行
我还为此推荐我的 jQuery 插件,其中包括此功能和其他插入、删除、环绕或替换所选文本的功能,这听起来正是您想要的。它也是我所知道的唯一一个用于文本区域选择的 jQuery 插件,它可以在 IE < 9 中正确使用换行符。
从这个页面
http://www.netadmintools.com/art466.html
function display(txtarea) {
var sl = (txtarea.value)
.substring(txtarea.selectionStart, txtarea.selectionEnd);
}
<body onload="thisForm=document.frmKey;">
jquery 字段选择插件.. 在此处下载示例。
::selection 选择器也可以工作。 http://www.w3schools.com/cssref/sel_selection.asp