У меня есть эти два кода -Проблемы с двумя кодами JavaScript
new function($) {
$.fn.getCursorPosition = function() {
var pos = 0;
var el = $(this).get(0);
// IE Support
if (document.selection) {
el.focus();
var Sel = document.selection.createRange();
var SelLength = document.selection.createRange().text.length;
Sel.moveStart('character', -el.value.length);
pos = Sel.text.length - SelLength;
}
// Firefox support
else if (el.selectionStart || el.selectionStart == '0')
pos = el.selectionStart;
return pos;
}
} (jQuery);
И
var element = document.getElementById('txtarr');
if(document.selection){
// The current selection
var range = document.selection.createRange();
// We'll use this as a 'dummy'
var stored_range = range.duplicate();
// Select all text
stored_range.moveToElementText(element);
// Now move 'dummy' end point to end point of original range
stored_range.setEndPoint('EndToEnd', range);
// Now we can calculate start and end points
element.selectionStart = stored_range.text.length - range.text.length;
element.selectionEnd = element.selectionStart + range.text.length;
}
Первая для получения позиции курсора в текстовом поле, а вторая для определения конца текстового поля, но они дают тот же результат? Где ошибка?
Просьба описать случай реального мира, в котором содержится текстовое поле, каков ожидаемый результат, каков фактический результат и где вы используете функции, используя какое событие (с). –
Я использую функции при нажатии backspace. Вторая функция возвращает число, которое показывает, где заканчивается textarea. Первая функция должна возвращаться туда, где позиция каретки находится в текстовом поле. Но две функции возвращают один и тот же результат (например, первые возвраты 37, а вторая возвращает 37, что, поскольку число - это конец текстового поля). – lam3r4370