国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > JS > 正文

使用TextRange獲取輸入框中光標(biāo)的位

2024-09-06 12:44:42
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
TextRange是用來(lái)表現(xiàn)HTML元素中文字的對(duì)象,雖然我們平時(shí)不太常用這個(gè)對(duì)象,可是它卻在IE4.0中就已提供了。不過(guò)TextRange提供的調(diào)用方法卻都比較晦澀,那么我們能拿它做些什么呢? 

    TextRange的傳統(tǒng)用途是對(duì)用戶在Web頁(yè)上用鼠標(biāo)圈選的文字內(nèi)容的操作,比如變化、刪除、新增等。但其經(jīng)典的用途卻是,在Web頁(yè)面中查找文字(這個(gè)比較簡(jiǎn)單)和獲取輸入框光標(biāo)的位置。其中后者又有可以衍生出很多更有用的用途,比如:限制輸入的MaskTextBox,其核心技術(shù)點(diǎn)就是獲取輸入框的光標(biāo)位置,然后使用正則表達(dá)式判斷輸入內(nèi)容。還有我后面會(huì)介紹的"使用方向鍵在輸入框矩陣中自然的導(dǎo)航",核心技術(shù)點(diǎn)也是獲取輸入框中的光標(biāo)位置。 

    獲取輸入框中的光標(biāo)位置的整個(gè)代碼其實(shí)很短,只是這些對(duì)象和方法不太常用而已。 
<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> 

    要徹底的弄清楚TextRange的具體用法,需要了解與其相關(guān)的一些內(nèi)容,請(qǐng)參考MSDN。
    這里說(shuō)一下使用這個(gè)GetCursorPsn()方法后,會(huì)給輸入框操作帶來(lái)的副作用。對(duì)于輸入框<input type="text" onkeydown="GetCursorPsn(this)">,它將不能再使用Shift+左右這兩個(gè)方向鍵來(lái)選擇文本;對(duì)于<textarea onkeydown="GetCursorPsn(this)"></textarea>,將不能再使用Shift+上下左右四個(gè)方向鍵來(lái)選擇文本。因?yàn)榇a在獲取了當(dāng)前光標(biāo)到文本的startPoint后,調(diào)用rng.collapse(false);會(huì)改變文本筐內(nèi)文本的EditPoint。不過(guò)這個(gè)副作用基本不會(huì)給我們使用文本框帶來(lái)什么大的問(wèn)題,所以基本不用太在意。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兰西县| 壶关县| 张家界市| 普兰县| 蓝田县| 黔西| 扬州市| 青海省| 新津县| 松潘县| 海林市| 蒲江县| 怀远县| 甘谷县| 赣州市| 东丰县| 八宿县| 辽中县| 英吉沙县| 区。| 弋阳县| 宜良县| 年辖:市辖区| 敦煌市| 武鸣县| 巴彦县| 江华| 灵宝市| 昔阳县| 天柱县| 堆龙德庆县| 扬中市| 滦南县| 石台县| 贡嘎县| 社旗县| 油尖旺区| 连南| 泰来县| 莲花县| 富顺县|