全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

javascript获取以及设置光标位置

一. 获取光标位置:

// 获取光标位置
function getCursortPosition (textDom) {
 var cursorPos = 0;
 if (document.selection) {
  // IE Support
  textDom.focus ();
  var selectRange = document.selection.createRange();
  selectRange.moveStart ('character', -textDom.value.length);
  cursorPos = selectRange.text.length;
 }else if (textDom.selectionStart || textDom.selectionStart == '0') {
  // Firefox support
  cursorPos = textDom.selectionStart;
 }
 return cursorPos;
}

二. 设置光标位置:

// 设置光标位置
function setCaretPosition(textDom, pos){
 if(textDom.setSelectionRange) {
  // IE Support
  textDom.focus();
  textDom.setSelectionRange(pos, pos);
 }else if (textDom.createTextRange) {
  // Firefox support
  var range = textDom.createTextRange();
  range.collapse(true);
  range.moveEnd('character', pos);
  range.moveStart('character', pos);
  range.select();
 }
}

三. 获取选中文字:

// 获取选中文字
function getSelectText() {
 var userSelection, text;
 if (window.getSelection) {
  // Firefox support
  userSelection = window.getSelection();
 } else if (document.selection) {
  // IE Support
  userSelection = document.selection.createRange();
 }
 if (!(text = userSelection.text)) {
  text = userSelection;
 }
 return text;
}

四. 选中特定范围的文本:

/**
* 选中特定范围的文本
* 参数:
*  textDom [JavaScript DOM String] 当前对象
*  startPos [Int] 起始位置
*  endPos [Int] 终点位置
*/
function setSelectText(textDom, startPos, endPos) {
 var startPos = parseInt(startPos),
  endPos = parseInt(endPos),
  textLength = textDom.value.length;
 if(textLength){
  if(!startPos){
   startPos = 0;
  }
  if(!endPos){
   endPos = textLength;
  }
  if(startPos > textLength){
   startPos = textLength;
  }
  if(endPos > textLength){
   endPos = textLength;
  }
  if(startPos < 0){
   startPos = textLength + startPos;
  }
  if(endPos < 0){
   endPos = textLength + endPos;
  }
  if(textDom.createTextRange){
   // IE Support
   var range = textDom.createTextRange();
   range.moveStart("character",-textLength);
   range.moveEnd("character",-textLength);
   range.moveStart("character", startPos);
   range.moveEnd("character",endPos);
   range.select();
  }else{
   // Firefox support
   textDom.setSelectionRange(startPos, endPos);
   textDom.focus();
  }
 }
}

五. 在光标后插入文本:

/**
* 在光标后插入文本
* 参数:
*  textDom [JavaScript DOM String] 当前对象
*  value [String] 要插入的文本
*/
function insertAfterText(textDom, value) {
 var selectRange;
 if (document.selection) {
  // IE Support
  textDom.focus();
  selectRange = document.selection.createRange();
  selectRange.text = value;
  textDom.focus();
 }else if (textDom.selectionStart || textDom.selectionStart == '0') {
  // Firefox support
  var startPos = textDom.selectionStart;
  var endPos = textDom.selectionEnd;
  var scrollTop = textDom.scrollTop;
  textDom.value = textDom.value.substring(0, startPos) + value + textDom.value.substring(endPos, textDom.value.length);
  textDom.focus();
  textDom.selectionStart = startPos + value.length;
  textDom.selectionEnd = startPos + value.length;
  textDom.scrollTop = scrollTop;
 }
 else {
  textDom.value += value;
  textDom.focus();
 }
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js  # 获取光标位置  # 设置光标位置  # javascript  # 光标位置  # Javascript实现获取及设置光标位置的方法  # 往光标所在位置插入值的js代码  # js获取光标位置的最新方法  # moveStart  # character  # length  # focus  # selectRange  # createRange  # text  # return  # setCaretPosition  # pos  # selectionStart  # Firefox  # support  # brush  # function  # strong  # pre  # class  # getCursortPosition 


相关文章: 制作网站的软件免费下载,免费制作app哪个平台好?  电商平台网站制作流程,电商网站如何制作?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  如何在宝塔面板创建新站点?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  定制建站策划方案_专业建站与网站建设方案一站式指南  h5网站制作工具有哪些,h5页面制作工具有哪些?  网站专业制作公司有哪些,做一个公司网站要多少钱?  安徽网站建设与外贸建站服务专业定制方案  建站之星展会模版如何一键下载生成?  油猴 教程,油猴搜脚本为什么会网页无法显示?  如何快速生成专业多端适配建站电话?  高端网站建设与定制开发一站式解决方案 中企动力  网站制作免费,什么网站能看正片电影?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  高防服务器租用如何选择配置与防御等级?  制作网页的网站有哪些,电脑上怎么做网页?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  建站主机与虚拟主机有何区别?如何选择最优方案?  如何快速搭建个人网站并优化SEO?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  完全自定义免费建站平台:主题模板在线生成一站式服务  内部网站制作流程,如何建立公司内部网站?  如何用wdcp快速搭建高效网站?  高防服务器如何保障网站安全无虞?  建站主机选购指南:核心配置优化与品牌推荐方案  如何通过西部建站助手安装IIS服务器?  如何在建站之星网店版论坛获取技术支持?  建站之星Pro快速搭建教程:模板选择与功能配置指南  建站之星代理平台如何选择最佳方案?  Swift中循环语句中的转移语句 break 和 continue  如何在腾讯云服务器上快速搭建个人网站?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  建站之星收费标准详解:套餐费用及年费价格表一览  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  如何零基础开发自助建站系统?完整教程解析  网站制作员失业,怎样查看自己网站的注册者?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  如何用PHP快速搭建高效网站?分步指南  如何通过网站建站时间优化SEO与用户体验?  网站制作软件有哪些,制图软件有哪些?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  简历在线制作网站免费版,如何创建个人简历?  ppt制作免费网站有哪些,ppt模板免费下载网站?  建站上传速度慢?如何优化加速网站加载效率?  如何在服务器上三步完成建站并提升流量?  如何制作网站标识牌,动态网站如何制作(教程)?  建站之星代理如何获取技术支持?  视频网站app制作软件,有什么好的视频聊天网站或者软件? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。