Caret index position cross browser?

问题描述 投票:2回答:1

我正在制作所见即所得的编辑器,我需要知道如何使插入符号的位置起作用。看来没有跨平台的明显方法。

我只需要语法。请不要将我指向Mozilla开发人员页面;我没有发现它特别有用。我正在使用内容可编辑的div。

source that i looked at

javascript caret
1个回答
9
投票

尝试一下

function doGetCaretPosition (oField) {

 // Initialize
 var iCaretPos = 0;

 // IE Support
 if (document.selection) { 

   // Set focus on the element
   oField.focus ();

   // To get cursor position, get empty selection range
   var oSel = document.selection.createRange ();

   // Move selection start to 0 position
   oSel.moveStart ('character', -oField.value.length);

   // The caret position is selection length
   iCaretPos = oSel.text.length;
 }

 // Firefox support
 else if (oField.selectionStart || oField.selectionStart == '0')
   iCaretPos = oField.selectionStart;

 // Return results
 return (iCaretPos);
}
© www.soinside.com 2019 - 2024. All rights reserved.