TextRange是用來表現HTML元素中文字的對象,雖然我們平時不太常用這個對象,可是它卻在IE4.0中就已提供了。不過TextRange提供的調用方法卻都比較晦澀,那麼我們能拿它做些什麼呢?
擷取輸入框中的光标位置的整個代碼其實很短,隻是這些對象和方法不太常用而已。
<script language="javascript">
function GetCursorPsn(txb)
{
var slct = document.selection;
var rng = slct.createRange();
txb.select();
rng.setEndPoint("StartToStart", slct.createRange());
var psn = rng.text.length;
rng.collapse(false);
rng.select();
return psn;
}
</script>
這裡說一下使用這個GetCursorPsn()方法後,會給輸入框操作帶來的副作用。對于輸入框<input
type="text"
onkeydown="GetCursorPsn(this)">,它将不能再使用Shift+左右這兩個方向鍵來選擇文本;對于<textarea
onkeydown="GetCursorPsn(this)"></textarea>,将不能再使用Shift+上下左右四個方向鍵來選擇文本。因為代碼在擷取了目前光标到文本的startPoint後,調用rng.collapse(false);會改變文本筐内文本的EditPoint。不過這個副作用基本不會給我們使用文本框帶來什麼大的問題,是以基本不用太在意。
本文轉自部落格園鳥食軒的部落格,原文連結:http://www.cnblogs.com/birdshome/,如需轉載請自行聯系原部落客。