全网整合营销服务商

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

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

JavaScript中在光标处插入添加文本标签节点的详细方法

正确的方法是正确运用Selection对象和Range对象,实现在光标当前位置插入文本或结点。但是这两个对象在IE和标准的DOM方式的运用方法是不同的。

思路:首先获得用户的选区(光标当前位置可理解成起始和终止位置一样的选区)。然后,从Selection对象转成Range对象。目的是利用Range对象的方法插内容进去。最后,插入动作结束后将光标移到插入内容的后面。

var sel = win.document.selection; //IE 
var sel = win.getSelection(); //DOM 
var range = sel.createRange(); // IE下 
var range = sel.getRangeAt(0); // DOM下 
if(range.startContainer){ // DOM下 
 sel.removeAllRanges(); // 删除Selection中的所有Range 
 range.deleteContents(); // 清除Range中的内容 
 // 获得Range中的第一个html结点 
 var container = range.startContainer; 
 // 获得Range起点的位移 
 var pos = range.startOffset; 
 // 建一个空Range 
 range = document.createRange(); 
 // 插入内容 
 var cons = win.document.createTextNode(",:),"); 
 if(container.nodeType == 3){// 如是一个TextNode 
 container.insertData(pos, cons.nodeValue); 
 // 改变光标位置 
 range.setEnd(container, pos + cons.nodeValue.length); 
 range.setStart(container, pos + cons.nodeValue.length); 
 }else{// 如果是一个HTML Node 
 var afternode = container.childNodes[pos]; 
 container.insertBefore(cons, afternode); 
 range.setEnd(cons, cons.nodeValue.length); 
 range.setStart(cons, cons.nodeValue.length); 
 } 
 sel.addRange(range); 
}else{// IE下 
 var cnode = range.parentElement(); 
 while(cnode.tagName.toLowerCase() != “body”){ 
 cnodecnode = cnode.parentNode; 
 } 
 if(cnode.id && cnode.id==”rich_txt_editor”){ 
 range.pasteHTML(",:),"); 
 } 
} 
win.focus(); 

innerHTML 和 pasteHTML 区别

innerHTML 是一个属性,可以取得或者设定该元素内的 HTML 内容,可以是任意能包含 HTML 子节点的元素都使用它

pasteHTML()是一个方法,在指定的文字区域内替换该区域内的文本或者HTML,该方法必须应用于一个 createTextRange() 或者 document.selection.createRange() 创建的区域上

var oRange = document.selection.createRange(); 
 if(oRange.text!=''){ 
 var oHtml = '<a href="#" rel="external nofollow" target=_blank>oRange.text</a>'; 
 oRange.pasteHTML(oHtml); 
 } 

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


# javascript光标定位  # js  # 光标后面添加节点  # js添加文本节点  # JavaScript自定义文本框光标  # Javascript实现获取及设置光标位置的方法  # js光标定位文本框回车表单提交问题的解决方法  # JS在可编辑的div中的光标位置插入内容的方法  # js实现获取焦点后光标在字符串后  # js获取光标位置和设置文本框光标位置示例代码  # 在页面中js获取光标/鼠标的坐标及光标的像素坐标  # js切换光标示例代码  # js/html光标定位的实现代码  # javascript textarea光标定位方法(兼容IE和FF)  # 是一个  # 第一个  # 这两个  # 应用于  # 后将  # 移到  # 转成  # 目的是  # 使用它  # container  # pos  # deleteContents  # removeAllRanges  # html  # startContainer  # startOffset  # insertData  # nodeValue  # setEnd  # TextNode 


相关文章: 用v-html解决Vue.js渲染中html标签不被解析的问题  南京网站制作费用,南京远驱官方网站?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  小型网站制作HTML,*游戏网站怎么搭建?  如何在万网开始建站?分步指南解析  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  山东云建站价格为何差异显著?  如何彻底删除建站之星生成的Banner?  网页设计网站制作软件,microsoft office哪个可以创建网页?  建站之星免费模板:自助建站系统与智能响应式一键生成  大连网站制作公司哪家好一点,大连买房网站哪个好?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  已有域名能否直接搭建网站?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  建站之星多图banner生成与模板自定义指南  如何快速生成凡客建站的专业级图册?  如何选择PHP开源工具快速搭建网站?  学校为何禁止电信移动建设网站?  南宁网站建设制作定制,南宁网站建设可以定制吗?  Android自定义listview布局实现上拉加载下拉刷新功能  如何用已有域名快速搭建网站?  音响网站制作视频教程,隆霸音响官方网站?  如何用腾讯建站主机快速创建免费网站?  如何做静态网页,sublimetext3.0制作静态网页?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  济南企业网站制作公司,济南社保单位网上缴费步骤?  如何快速生成橙子建站落地页链接?  宝塔面板创建网站无法访问?如何快速排查修复?  北京专业网站制作设计师招聘,北京白云观官方网站?  定制建站流程步骤详解:一站式方案设计与开发指南  如何在阿里云服务器自主搭建网站?  如何选择高性价比服务器搭建个人网站?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  宝塔建站助手安装配置与建站模板使用全流程解析  零基础网站服务器架设实战:轻量应用与域名解析配置指南  建站之星代理平台如何选择最佳方案?  如何通过WDCP绑定主域名及创建子域名站点?  如何快速重置建站主机并恢复默认配置?  如何通过山东自助建站平台快速注册域名?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  如何用wdcp快速搭建高效网站?  建站之星如何优化SEO以实现高效排名?  如何在IIS中配置站点IP、端口及主机头?  如何撰写建站申请书?关键要点有哪些?  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  微信小程序 五星评分(包括半颗星评分)实例代码 

您的项目需求

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