这篇文章主要介绍了 Javascript 实现获取及设置光标位置的方法, 涉及 javascript 针对页面光标位置的相关操作技巧, 具有良好的兼容性, 非常简单实用, 需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
本文实例讲述了 Javascript 实现获取及设置光标位置的方法。分享给大家供大家参考。具体如下:
在项目开发中经常遇到 input 等设置光标位置到最后的问题,今天我查了一下 Google,找到了在 IE、Firefox、Opera 等主流浏览器的获取光标位置(getCursortPosition)以及设置光标位置(setCursorPosition)的函数。
1. 获取光标位置函数:
- 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);
- }
2. 设置光标位置函数:
- 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();
- }
- }
希望本文所述对大家的 javascript 程序设计有所帮助。
来源: