国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 南充市| 巨野县| 滨海县| 新沂市| 通海县| 姚安县| 乐昌市| 遂宁市| 临汾市| 封丘县| 萨嘎县| 芜湖市| 定州市| 张掖市| 敦煌市| 京山县| 成都市| 陈巴尔虎旗| 德阳市| 沁源县| 万山特区| 千阳县| 双城市| 环江| 临朐县| 南雄市| 运城市| 赤峰市| 南汇区| 平顺县| 府谷县| 遵义市| 五寨县| 房产| 寿宁县| 赞皇县| 河源市| 镶黄旗| 噶尔县| 凤庆县| 聂荣县|