返回列表 發帖
這樣的功能是可以做,不過你得自己試試看囉,針對 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 事件,選取文字完成後就會被驅動,這時會依據瀏覽器支援的功能,用不同的方式獲得選取的文字範圍。

至於你要做的不是「選取範圍」,但是是有相關的,可以用這一類的功能得知滑鼠坐落位置的前後是否為空白,或是文字,再接著用替代的方式將「空的選取範圍」給取代掉即可達到你的需求。
To infinity and beyond!

TOP

返回列表 回復 發帖