頁面上輸入框中閃爍的光標實際上是一個選區,也就是選區的左邊界和右邊界直接造成的選區。瀏覽器
輸入框結點input=document.getElementById('#input')
有二個屬性: selectionStart、selectionEnd,分別表明選區開始位置,選區結束位置。code
經過修改這二個值就能夠造成選區,寬度爲0也就實現了光標的位置控制和獲取。對象
IE瀏覽器提供的API更加豐富:
createTextRange()、 document.selection.createRange()、moveStart() 、moveEnd() 、move() 、collapse() 、text 、select()。get
第一步:input
//建立一個文本選區對象。 var range = input.createTextRange();
第二步:一些操做it
range.collapse(boolean);
能夠傳入一個布爾值做爲參數,參數默認值爲true,指示向左仍是向右壓縮io
range.moveStart(param1,param2);
第一個參數可選值有 character、word、sentence、textedit. 好比character,即根據字符來偏移。第二個參數表明偏移的多少,正負表示方向。select
range.moveEnd(param1,param2);
和上面那個方法參數同樣,不一樣的是這是用來移動結束邊界方法
第三步:word
range.select(); //將range包含的區域選中。
須要注意的是:在調用range.select()方法以前,選區對象的內容並不會被添加選中效果
補充:
var range = document.selection.createRange();
這個方法根據當前頁面中的選中文字區域來建立一個選區對象,這個選區對象與createTextRange方法的到選區對象的區別在於,它的選區範圍爲頁面選中文字的區域,即它的左右邊界再也不是默認的左最小右最大。
range.move(param1,param2);
和moveStart參數同樣,對於移動光標比較友好。