最近项目中要做一个键盘操作,光标移动的功能;增强用户体验;问朋友查资料了解到这方面的知识;整理备忘;

1、IE使用textRange对象,其他使用selectionStart selectionEnd;

/**
* [moveCursor description]
* @param {[type]} obj [表单对象]
* @param {[type]} insertPos [插入位置]
* @return {[type]} [description]
*/
function moveCursor(obj,insertPos){
if(isNaN(insertPos)){
throw '参数insertPos不是数字';
}
if(obj.nodeType != 1 ){
throw '参数obj不是html对象'
}
insertPos = +insertPos;
// document.body不支持新属性
if('selectionStart' in obj){
obj.selectionStart = insertPos;
obj.selectionEnd = insertPos;
obj.focus();
}else{
var ctg = obj.createTextRange();
ctg.move('character', insertPos);
ctg.select();
}
}

参考资料http://help.dottoro.com/ljtfkhio.php

javascript中的光标的更多相关文章

  1. JavaScript Iframe富文本编辑器中的光标定位

    最近在项目中碰到一个比较棘手的问题: 在iframe富文本编辑器中,有个工具栏,这个工具栏在iframe标签之外,工具栏上有一个按钮,点击该按钮向iframe正在编辑中的光标处插入一个图片,图片会插入 ...

  2. Javascript中最常用的55个经典技巧

    Javascript中最常用的55个经典技巧1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键<table ...

  3. javascript 获取用户光标,插入文本

    图1 如图1所示,点击[函数名称],将函数名称添加到表达式内容框中,点击参数名称,将参数名称index1作为方法的参数添加到表达式内容中的表达式中. 该功能实现主要是采用了javascript获取鼠标 ...

  4. JavaScript中常用的事件

    .onclick事件 点击事件(onclick并不是js中的方法,onclick只是浏览器提供js的一个dom接口,让js可以操作dom,所以onclick大小写都是没问题的,比如HTML代码就不用区 ...

  5. javascript中事件总结&通用的事件侦听器函数封装&事件委托

    前言: JAVASCRIPT与HTML之间的交互是通过事件来实现的.事件,就是文档或浏览器窗口中发生的一些特定交互瞬间.可以使用侦听器( 或处理程序 )来预定事件,以便事件发生时执行相应的代码.这种在 ...

  6. JavaScript中的表单编程

    表单编程 1获取表单相关信息 1.什么是表单元素 1.什么是表单元素 在H TML中表单就是指form标签,它的作用是将用户输入或选择的数据提交给指定的服务器 2.如何获取表单元素 <form ...

  7. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  8. javascript中的this与函数讲解

    前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大家可以认为全局作用域其实就是Window函数的函数作用域,我们编写的js代码, ...

  9. JavaScript 中的数据类型

    Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...

随机推荐

  1. scala基础备忘

    声明一个变量 声明一个常量 显式指定类型 定义一个main函数 package org.admln.scala class HelloScala { } object HelloScala { def ...

  2. JSON3-翻译(不当之处,请指正)

    http://bestiejs.github.io/json3/JSON 3 显示了两个功能:stringify():序列化一个javaScript值为一个JSON,和parse():将一个json字 ...

  3. TCP/IP协议原理与应用笔记25:网际协议(IP)之 数据报(Datagram)

    1. 数据报(Datagram)格式: 2. 长度字段 (1)首部长度字段, bits 以 4 字节(即32bits)为单位 取值:5~15(即首部长度为20 ~ 60 bytes) (2)总长度字段 ...

  4. Java学习笔记——显示当前日期的三种方式

    一.Date类:这是一种过时的表达方式 import java.util.Date; Date date = new Date(); System.out.println((1900+date.get ...

  5. Vmware出现报错The VMware Authorization Service is not running.之后无法上网解决

    今天一大早开VMware,启动ubuntu时出现了报错The VMware Authorization Service is not running,服务Authorization没有运行. 这之前一 ...

  6. 转:eclipse怎样修改包(package)的显示样式、格式 工具/原料

    转:http://blog.csdn.net/longyaxx258/article/details/50774128 eclipse 打开我们的项目,可以看到左侧的package看上去特别多,没有层 ...

  7. 转: 透过CAT,来看分布式实时监控系统的设计与实现

    评注: 开源的分布式监控系统 转:http://www.infoq.com/cn/articles/distributed-real-time-monitoring-and-control-syste ...

  8. 修改的某人的SqlHelper FOR ODBC

    随便找来的,源作者不明. 本来是SQL SERVER 的 修改为 ODBC使用. 并且修改了连接字符串,可以允许修改一次. using System; using System.Collections ...

  9. 数据库自定义表值函数Split(@LongStr, @SplitStr, @IsDistinct )

    CREATE FUNCTION [dbo].[F3_Split](@LongStr VARCHAR(MAX),@SplitStr VARCHAR(100),@IsDistinct BIT)RETURN ...

  10. 包装BufferedReader的readLine()输出行号

    定义一个类,实现与被增强对象相同的接口,或继承这个类,视情况而定 定义一个变量,记住被增强的对象 定义一个构造函数,接收被增强的对象 覆盖要增强的方法 对于不需要增强的方法,调用被增强对象原有的方法 ...