這樣的功能是可以做,不過你得自己試試看囉,針對 IE 和支援 W3C 標準的瀏覽器有不同的方式。
IE 請參考 createRange 和相關的文件:
http://msdn.microsoft.com/en-us/library/ms536394(VS.85).aspx
W3C 的參考文件:
http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html
底下這個片段是取得選取範圍的文字,你可以從這邊開始學習怎麼做:
function getSel() {
var editdoc = document.getElementById('tt');
if (typeof editdoc.selectionStart != 'undefined') {
return editdoc.value.substr(editdoc.selectionStart, editdoc.selectionEnd - editdoc.selectionStart);
} else if(document.selection && document.selection.createRange) {
return document.selection.createRange().text;
} else {
return false;
}
}
$('#tt').mouseup(function() {
alert(getSel());
});
首先把 id=tt 這個 textarea 綁定一個 mouseup 事件,選取文字完成後就會被驅動,這時會依據瀏覽器支援的功能,用不同的方式獲得選取的文字範圍。
至於你要做的不是「選取範圍」,但是是有相關的,可以用這一類的功能得知滑鼠坐落位置的前後是否為空白,或是文字,再接著用替代的方式將「空的選取範圍」給取代掉即可達到你的需求。 |