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

首頁 > 開發 > JS > 正文

使用TextRange獲取輸入框中光標的位置的代碼

2024-09-06 12:43:07
字體:
來源:轉載
供稿:網友
TextRange是用來表現HTML元素中文字的對象,雖然我們平時不太常用這個對象,可是它卻在IE4.0中就已提供了。不過TextRange提供的調用方法卻都比較晦澀,那么我們能拿它做些什么呢? 

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

    獲取輸入框中的光標位置的整個代碼其實很短,只是這些對象和方法不太常用而已。 
<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的具體用法,需要了解與其相關的一些內容,請參考MSDN。 



    這里說一下使用這個GetCursorPsn()方法后,會給輸入框操作帶來的副作用。對于輸入框<input type="text" onkeydown="GetCursorPsn(this)">,它將不能再使用Shift+左右這兩個方向鍵來選擇文本;對于<textarea onkeydown="GetCursorPsn(this)"></textarea>,將不能再使用Shift+上下左右四個方向鍵來選擇文本。因為代碼在獲取了當前光標到文本的startPoint后,調用rng.collapse(false);會改變文本筐內文本的EditPoint。不過這個副作用基本不會給我們使用文本框帶來什么大的問題,所以基本不用太在意。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿坝县| 江永县| 额尔古纳市| 富阳市| 南部县| 逊克县| 乌兰浩特市| 阿城市| 云阳县| 青神县| 甘肃省| 巴里| 赣州市| 延津县| 汶川县| 昌黎县| 大足县| 越西县| 万州区| 浦城县| 安溪县| 西乌珠穆沁旗| 阳春市| 淮滨县| 茂名市| 淮安市| 上犹县| 弥渡县| 尖扎县| 谢通门县| 晋城| 淳化县| 宝清县| 仁化县| 姚安县| 体育| 通江县| 徐闻县| 吐鲁番市| 江源县| 雷山县|