当前位置:首页 > 日记 > 正文

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

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);  } 

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

相关文章

js实现日历的简单算法

js实现日历的简单算法

简单算法,日历,电脑软件,js,最近有用到日历可需要编辑文本的日历,为了绑定数据的方便,所以用js写了一套日历,其实思想也是很简单。实现步骤如下:1、首先取得处理月的总天数JS不提供此参数,我们需要计算。考虑到闰年问题会影响二月份的天数,我们先…

QQ怎么打开临时会话功能QQ开启临时

QQ怎么打开临时会话功能QQ开启临时

方法,屏蔽,教程,功能,电脑软件,  临时会话功能是针对双方非对方QQ好友进行对话的一个功能,我们怎么打开临时会话的功能呢?下面是小编为大家整编的QQ开启临时会话的教程,大家快来看看吧。QQ打开临时会话功能的方法1、登录QQ,点击打开系统设置2…

excel表格如何保留两位小数点

excel表格如何保留两位小数点

保留两位小数,设置,方法,表格,电脑软件,  excel是工作中最常用到的表,如果在对数据进行接触的过程中遇到小数点后出现很多位,怎么设置表格保留两位小数呢?接下来小编举例简单的例子告诉大家Excel表格设置保留两位小数的方法吧。Excel表格设…

如何使用ppt破解加密演示文稿

如何使用ppt破解加密演示文稿

加密,破解,演示文稿,如何使用,电脑软件,  在平时的生活中,我们经常会使用到PPT软件,如果我们之前加密的文稿忘记了密码,有破解的方法吗?以下是小编为您带来的关于使用ppt破解加密演示文稿,希望对您有所帮助。使用ppt破解加密演示文稿1:找到你…

wps文字怎么上传文件

wps文字怎么上传文件

文字,上传文件,方法,上传,文件,  wps的云文档功能是可以将我们是所编辑的文档上传到云端,上传到云端的文档是可以在移动设备上查看的。那么我们怎么上传云文件呢?下面就让小编告诉你wps如何上传云文件,希望小编整理的资料对大家有帮助。wps…

excel怎样用if函数自动填充颜色

excel怎样用if函数自动填充颜色

函数,自动填充,方法,颜色,电脑软件,  Excel中如何用if函数进行颜色的填充呢?其实我们可以利用函数来设置填充,下面是小编带来的关于excel 用if函数填充颜色的教程,欢迎大家来到学习。excel用if函数自动填充颜色的方法用if函数填充颜色步骤1…

JS回调函数基本定义与用法实例分析

JS回调函数基本定义与用法实例分析

实例分析,回调函数,定义,电脑软件,JS,本文实例讲述了JS回调函数基本定义与用法。分享给大家供大家参考,具体如下:初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数。我们先来看看回调的英文定义:A callback is a function t…

word2013怎样设置修改和删除文件密

word2013怎样设置修改和删除文件密

删除文件,设置,修改,密码,电脑软件,  Microsoft Office 2013版本的的办公软件界面发生了一些变化,本经验以Word 2013为例,讲解如何设置、修改、删除文件的密码,其它文档(EXCEL、PPT)方法类似。那么下面就由小编为您提供更具体的操作吧,有需要…

怎样自定义Excel2007快速访问工具

怎样自定义Excel2007快速访问工具

工具栏,自定义,快速,电脑软件,  在Excel 2007中,用户可以根据自己的操作需要,随时可对&ldquo;快速访问工具栏&rdquo;进行定义操作,如添加/删除工具栏中的命令按钮、创建个性化的工具栏等。以下是小编为您带来的关于自定义Excel2007快速访问…

Excel如何隔列插入多列空白列

Excel如何隔列插入多列空白列

多列,空白,电脑软件,Excel,  对于Excel表格的运用,如果我们现在需要隔列添加多列空白列,我们只能一列一列插入吗?不一定,可以在Excel表格中快速的添加多列空白列。以下是小编为您带来的关于Excel隔列插入多列空白列,希望对您有所帮助。Excel…

word2016文档调整文件大小有什么方

word2016文档调整文件大小有什么方

调整,方法,文件大小,文档,有什么,  有的朋友表示word文件太大,不方便上传文件保存,怎么才能调整文件变小。以下是小编为您带来的关于word2016调整文件大小方法,希望对您有所帮助。word2016调整文件大小方法在Word文档中,点击上面的&ldquo;文…

撤销excel工作表保护的方法怎么撤

撤销excel工作表保护的方法怎么撤

方法,密码保护,工作,电脑软件,excel,  在Excel中录入好重要的数据以后都需要进行工作表的密码保护,或许过了段时间后数据不再重要了就可以撤销工作表保护了,可能有的朋友还不会如何撤销工作表的保护。下面是小编带来的关于如何撤销excel工…