![](/img/trans.png)
[英]Getting caret position in IE works in one scenario, doesn't in another
[英]getting caret position with spaces in IE
問題在於空間。 有時如果插入符號在空格上,它會忽略空格並找到最后一個字符的位置(這不是空格)。 在本演示中,如果單擊字母c的右側,則將插入符號位置顯示為3.然后單擊字母d左側(沿着一個字符),它仍顯示插入符號位置為3.但是如果單擊左側第一個,然后它顯示位置4(正確的位置)。 如果有人可以看看我的jsFiddle,試試這個也許你可以找到一個解決方案。 謝謝。
注意,此代碼僅適用於IE。
$('input').click(function(){
var Sel = document.selection.createRange();
Sel.moveStart('character', -this.value.length);
CaretPos = Sel.text.length;
$('span').text(CaretPos);
});
該selectionStart
曾在最新的IE,Firefox和Chrome瀏覽器。
$('input').click(function(){
this.focus();
/**var Sel = document.selection.createRange();
Sel.moveStart('character', -inelem.value.length);
CaretPos = Sel.text.length;*/
CaretPos = this.selectionStart;
$('span').text(CaretPos);
});
但是,如果您擔心支持舊的IE版本,則可以有條件createRange
在selectionStart
調用createRange
。 檢查這個版本的小提琴。 doGetCaretPosition
基於此鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.