0

您将如何在 textarea 中获取当前选定的文本(并对其进行修改)?

我已经看到了可以监听的 select 事件,但我想知道是否有办法只获取当前选定的文本。

此外,您需要使用什么技术才能修改文本区域内的特定文本部分?我假设有一些方法可以找出整个文本区域内容中选择的位置是什么?

我想要做的是选择并修改它,或者将它包装在某些标签等中,就像你可以在 stackexchange 文本编辑器中做的那样。

4

5 回答 5

3

如果您只需要支持最新的浏览器,您可以使用selectionStartselectionEnd属性来显示在 textarea 中选择的文本的字符位置。您不能只修改选定的文本,而是更新了可用于setSelectionRange重新选择文本的值。

于 2011-08-07T20:28:05.023 回答
2

我已经多次在 Stack Overflow 上发布了我认为在所有浏览器(包括 IE < 9)中执行此操作的最终功能。这是一个例子:

IE 的 document.selection.createRange 不包括前导或尾随空行

我还为此推荐我的 jQuery 插件,其中包括此功能和其他插入、删除、环绕或替换所选文本的功能,这听起来正是您想要的。它也是我所知道的唯一一个用于文本区域选择的 jQuery 插件,它可以在 IE < 9 中正确使用换行符。

于 2011-08-07T21:57:03.883 回答
1

从这个页面

http://www.netadmintools.com/art466.html

function display(txtarea) {
  var sl = (txtarea.value)
     .substring(txtarea.selectionStart, txtarea.selectionEnd);        
} 


<body onload="thisForm=document.frmKey;">
于 2011-08-07T20:25:17.257 回答
1

jquery 字段选择插件.. 在此处下载示例。

于 2011-08-07T20:26:24.160 回答
0

::selection 选择器也可以工作。 http://www.w3schools.com/cssref/sel_selection.asp

于 2011-08-07T21:26:04.543 回答