在页面上获取当前选定的文本

时间:2011-08-07 20:20:22

标签: javascript jquery wysiwyg textselection

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

我见过可以收听的select事件,但我想知道是否有办法获取当前选中的文字。

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

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

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

IE's document.selection.createRange doesn't include leading or trailing blank lines

我还建议使用my jQuery plug-in,其中包括此功能以及其他用于插入,删除,环绕或替换所选文本的内容,这听起来就像您想要的那样。它也是textarea选择的唯一jQuery插件,我知道它可以正常使用IE中的换行符< 9。

答案 2 :(得分:1)

从这个页面

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

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


<body onload="thisForm=document.frmKey;">

答案 3 :(得分:1)

jquery字段选择插件..  网站上有Download Here个例子。

答案 4 :(得分:0)

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