全网整合营销服务商

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

免费咨询热线: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 


相关文章: 建站之星后台搭建步骤解析:模板选择与产品管理实操指南  制作公司内部网站有哪些,内网如何建网站?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  成都网站制作报价公司,成都工业用气开户费用?  如何做静态网页,sublimetext3.0制作静态网页?  已有域名和空间如何搭建网站?  上海网站制作开发公司,上海买房比较好的网站有哪些?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  建站之星价格显示格式升级,你的预算足够吗?  如何有效防御Web建站篡改攻击?  免费网站制作appp,免费制作app哪个平台好?  如何构建满足综合性能需求的优质建站方案?  如何高效利用亚马逊云主机搭建企业网站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  如何快速生成凡客建站的专业级图册?  如何确保FTP站点访问权限与数据传输安全?  代购小票制作网站有哪些,购物小票的简要说明?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  建站之星会员如何解锁更多建站功能?  Python路径拼接规范_跨平台处理说明【指导】  如何登录建站主机?访问步骤全解析  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  如何快速重置建站主机并恢复默认配置?  代刷网站制作软件,别人代刷火车票靠谱吗?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何在IIS中配置站点IP、端口及主机头?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  重庆市网站制作公司,重庆招聘网站哪个好?  北京企业网站设计制作公司,北京铁路集团官方网站?  如何在新浪SAE免费搭建个人博客?  建站与域名管理如何高效结合?  如何在腾讯云服务器快速搭建个人网站?  香港服务器如何优化才能显著提升网站加载速度?  图册素材网站设计制作软件,图册的导出方式有几种?  网站网页制作专业公司,怎样制作自己的网页?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  制作宣传网站的软件,小红书可以宣传网站吗?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  公司门户网站制作流程,华为官网怎么做?  如何在阿里云通过域名搭建网站?  制作企业网站建设方案,怎样建设一个公司网站?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  如何在云主机上快速搭建网站?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  智能起名网站制作软件有哪些,制作logo的软件?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  如何选择高效便捷的WAP商城建站系统?  兔展官网 在线制作,怎样制作微信请帖?  如何在VPS电脑上快速搭建网站? 

您的项目需求

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