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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:19:31
字體:
來源:轉載
供稿:網友

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 喜德县| 罗甸县| 溧阳市| 四川省| 读书| 璧山县| 铜陵市| 龙山县| 武宁县| 双峰县| 新竹县| 焉耆| 庄河市| 河曲县| 四平市| 七台河市| 奉新县| 林西县| 喜德县| 奇台县| 静乐县| 龙口市| 渭源县| 九台市| 突泉县| 安达市| 宁武县| 青铜峡市| 石柱| 台东县| 屯昌县| 个旧市| 汕头市| 井冈山市| 辽阳市| 罗山县| 田阳县| 崇阳县| 平远县| 宣威市| 淅川县|