2011-08-07 67 views
0

如何獲取textarea中的當前選定文本(並對其進行修改)?獲取當前選中的文本

我見過可以被監聽的select事件,但我想知道是否有辦法獲取當前選中的文本。

此外,你需要使用什麼技術才能在textarea中修改文本的特定部分?我認爲有一些方法可以找出選擇的位置在整個textarea的內容中的位置?

我想要做的就是選擇並修改它,或者將它包裝在特定的標籤等中,就像您在堆棧交換文本編輯器中所做的那樣。

回答

2

我已經發布了我認爲在堆棧溢出所有瀏覽器(包括IE < 9)上執行此操作的權威函數。這裏有一個例子:

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

我也建議my jQuery plug-in這一點,其中包括這個功能和其他插入,刪除,環繞或替換選定的文本,這聽起來像你想要什麼。它也是唯一的jQuery插件的textarea選擇我知道這可以正常使用IE中的換行符工作。

1

在此頁面中

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

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


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

jQuery的字段選擇插件.. Download Here例子在現場。

+0

fieldselection插件在IE <9中無法正常工作,並且換行符爲空。 –

3

如果您只需要支持最新的瀏覽器,則可以使用selectionStartselectionEnd屬性,這些屬性顯示textarea中選定文本的字符位置。您不能僅修改所選文字,而是更新了可使用setSelectionRange重新選擇文字的值。

+0

感謝'setSelectionRange'提示 – Acorn

+1

爲了更加具體地瞭解瀏覽器,'selectionStart'和'selectionEnd'在除IE <9之外的所有主要事物中都很好。另外,'selectionStart'和'selectionEnd'是可寫的,所以您可以使用它們或'setSelectionRange()'。我不知道爲什麼冗餘存在。 –