正确的方法是正确运用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); }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持小牛知识库!
文本标签通常用于帮助记录仪表板,例如添加仪表板标题、URL 链接。 添加一个文本标签 在仪表板选项卡中,点击 “添加文本”。 将其放在仪表板上。 输入标题。 属性 文本标签的可用属性: 选项 描述 位置 自定义标签的位置。 大小 自定义标签的大小。 标题 输入标签的标题。 对齐方式 指定标签标题的文本对齐方式。 字体 设置标签标题的字体样式。 粗体 将粗体样式应用于标签标题。 斜体 将斜体样式应用
文本标签通常用于帮助记录仪表板,例如添加仪表板标题、URL 链接。 添加一个文本标签 在仪表板选项卡中,点击 。 将其放在仪表板上。 输入标题。 属性 文本标签的可用属性: 选项 描述 位置 自定义标签的位置。 大小 自定义标签的大小。 标题 输入标签的标题。 对齐方式 指定标签标题的文本对齐方式。 字体 设置标签标题的字体样式。 粗体 将粗体样式应用于标签标题。 斜体 将斜体样式应用于标签标题。
文本标签通常用于帮助记录仪表板,例如添加仪表板标题、URL 链接。 添加一个文本标签 在仪表板选项卡中,点击 “添加文本”。 将其放在仪表板上。 输入标题。 属性 文本标签的可用属性: 选项 描述 位置 自定义标签的位置。 大小 自定义标签的大小。 标题 输入标签的标题。 对齐方式 指定标签标题的文本对齐方式。 字体 设置标签标题的字体样式。 粗体 将粗体样式应用于标签标题。 斜体 将斜体样式应用
问题内容: 我有一个contenteditable div,需要在插入符号的位置插入文本, 可以通过IE在IE中轻松完成此操作 在Firefox / Chrome中有类似的实现方式吗? 谢谢! 问题答案: 以下功能将在插入符号位置插入文本,并删除现有选择。它适用于所有主流桌面浏览器: 更新 基于注释,下面是一些用于保存和还原选择的代码。在显示上下文菜单之前,应该将返回值存储在一个变量中,然后在隐藏
嗨,我试图创建一个由JComboBox和JTextField组成的接口。我已经整理好了向JComboBox添加标签的代码,但是我在向文本字段添加标签时遇到了麻烦。如有任何帮助,不胜感激。
本文向大家介绍innerHTML添加文本,但不添加HTML标签,包括了innerHTML添加文本,但不添加HTML标签的使用技巧和注意事项,需要的朋友参考一下 也许,您正在将+ =与innerHTML一起使用。请尝试以下操作: