TextRange的傳統(tǒng)用途是對(duì)用戶在Web " /> 国产电影精品久久禁18,人人鲁人人莫人人爱精品,日韩欧美亚洲一区二区

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

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

TextRange是用來表現(xiàn)HTML元素中文字的對(duì)象,雖然我們平時(shí)不太常用這個(gè)對(duì)象,可是它卻在IE4.0中就已提供了。不過TextRange提供的調(diào)用方法卻都比較晦澀,那么我們能拿它做些什么呢? 

    TextRange的傳統(tǒng)用途是對(duì)用戶在Web頁上用鼠標(biāo)圈選的文字內(nèi)容的操作,比如變化、刪除、新增等。但其經(jīng)典的用途卻是,在Web頁面中查找文字(這個(gè)比較簡單)和獲取輸入框光標(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。 



    這里說一下使用這個(gè)GetCursorPsn()方法后,會(huì)給輸入框操作帶來的副作用。對(duì)于輸入框<input type="text" onkeydown="GetCursorPsn(this)">,它將不能再使用Shift+左右這兩個(gè)方向鍵來選擇文本;對(duì)于<textarea onkeydown="GetCursorPsn(this)"></textarea>,將不能再使用Shift+上下左右四個(gè)方向鍵來選擇文本。因?yàn)榇a在獲取了當(dāng)前光標(biāo)到文本的startPoint后,調(diào)用rng.collapse(false);會(huì)改變文本筐內(nèi)文本的EditPoint。不過這個(gè)副作用基本不會(huì)給我們使用文本框帶來什么大的問題,所以基本不用太在意。

JavaScript技術(shù)使用TextRange獲取輸入框中光標(biāo)的位置的代碼,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 溧水县| 凤冈县| 肇东市| 栾城县| 正蓝旗| 谢通门县| 耿马| 临安市| 府谷县| 邛崃市| 盐池县| 门源| 铜梁县| 伽师县| 扬州市| 临海市| 称多县| 新宁县| 禄丰县| 永城市| 综艺| 顺平县| 克拉玛依市| 汝州市| 银川市| 乌兰察布市| 武宁县| 桐梓县| 任丘市| 汕尾市| 凌源市| 敦化市| 浑源县| 东丰县| 乌海市| 房产| 邮箱| 金溪县| 平果县| 富顺县| 阜新|