国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript中在光標處插入添加文本標簽節點的詳細方法

2019-11-19 17:04:19
字體:
來源:轉載
供稿:網友

正確的方法是正確運用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);  } 

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂尔多斯市| 抚州市| 班戈县| 土默特右旗| 横峰县| 富源县| 石狮市| 大化| 陵水| 碌曲县| 盐山县| 吉安市| 海伦市| 马鞍山市| 亳州市| 开鲁县| 囊谦县| 沁阳市| 漠河县| 安岳县| 延寿县| 阿瓦提县| 都江堰市| 石景山区| 英德市| 辽宁省| 淮阳县| 炉霍县| 花莲市| 通城县| 贺州市| 临高县| 益阳市| 潮州市| 遂川县| 龙胜| 准格尔旗| 渭南市| 林口县| 云梦县| 乐东|