Положение каретки через браузер? - PullRequest
2 голосов
/ 21 февраля 2012

Я делаю WYSIWYG-редактор, и мне нужно знать, как заставить работать позицию каретки. Похоже, что нет никакого очевидного способа сделать это кроссплатформенным.

Мне просто нужен синтаксис. Пожалуйста, не указывайте мне на страницу для разработчиков Mozilla; Я не нашел это особенно полезным. Я использую контент редактируемый div.

источник, на который я посмотрел

1 Ответ

9 голосов
/ 21 февраля 2012

попробуйте

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);
}
...