如何獲取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中無法正常工作,並且換行符爲空。 –