在工作中难免要对textarea动态插入一些内容,插入完成后又想让光标定位于textarea的最后,各浏览器对这个的解释有些差异,下面整理了一个兼容浏览器的方法 toTextEnd ,此方法接受一个参数,该参数为要定位光标的目标元素【可编辑表单元素】。
其实理论很简单,在IE中采用createTextRange方法,非IE中采用setSelectionRange方法进行光标定位。
代码中的cn.ie是进行IE检测,使用代码的朋友可以换成自己的方法才会起作用,否则会报错。
看代码:
function toTextEnd(elem){// 将光标置于某表单元素的最后
if(cn.ie){
var range = elem.createTextRange();
range.moveStart("character", elem.value.length);
range.collapse(true);
range.select();
}else{// 非IE情况下将光标置于文本框最后
elem.setSelectionRange(elem.value.length, elem.value.length);
elem.focus();
}
};