1. 程式人生 > >javascript獲取游標位置以及設定游標位置

javascript獲取游標位置以及設定游標位置

在專案開發中經常遇到input等設定游標位置到最後的問題,今天我查了一下Google,找到了在IE、Firefox、Opera等主流瀏覽器的獲取游標位置(getCursortPosition)以及設定游標位置(setCursorPosition)的函式。

function getCursortPosition (ctrl) {//獲取游標位置函式
	var CaretPos = 0;	// IE Support
	if (document.selection) {
	ctrl.focus ();
		var Sel = document.selection.createRange ();
		Sel.moveStart ('character', -ctrl.value.length);
		CaretPos = Sel.text.length;
	}
	// Firefox support
	else if (ctrl.selectionStart || ctrl.selectionStart == '0')
		CaretPos = ctrl.selectionStart;
	return (CaretPos);
}
PS:引數ctrl為input或者textarea物件
function setCaretPosition(ctrl, pos){//設定游標位置函式
	if(ctrl.setSelectionRange)
	{
		ctrl.focus();
		ctrl.setSelectionRange(pos,pos);
	}
	else if (ctrl.createTextRange) {
		var range = ctrl.createTextRange();
		range.collapse(true);
		range.moveEnd('character', pos);
		range.moveStart('character', pos);
		range.select();
	}
}
PS:引數ctrl為input或者textarea物件,pos為游標要移動到的位置。