最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中在光標(biāo)處插入添加文本標(biāo)簽節(jié)點(diǎn)的詳細(xì)方法

 更新時(shí)間:2017年03月22日 17:09:00   作者:soul丶強(qiáng)  
本文主要介紹了JavaScript中在光標(biāo)處插入添加文本標(biāo)簽節(jié)點(diǎn)的詳細(xì)方法。具有很好的參考價(jià)值。下面跟著小編一起來看下吧

正確的方法是正確運(yùn)用Selection對(duì)象和Range對(duì)象,實(shí)現(xiàn)在光標(biāo)當(dāng)前位置插入文本或結(jié)點(diǎn)。但是這兩個(gè)對(duì)象在IE和標(biāo)準(zhǔn)的DOM方式的運(yùn)用方法是不同的。

思路:首先獲得用戶的選區(qū)(光標(biāo)當(dāng)前位置可理解成起始和終止位置一樣的選區(qū))。然后,從Selection對(duì)象轉(zhuǎn)成Range對(duì)象。目的是利用Range對(duì)象的方法插內(nèi)容進(jìn)去。最后,插入動(dòng)作結(jié)束后將光標(biāo)移到插入內(nèi)容的后面。

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中的內(nèi)容 
 // 獲得Range中的第一個(gè)html結(jié)點(diǎn) 
 var container = range.startContainer; 
 // 獲得Range起點(diǎn)的位移 
 var pos = range.startOffset; 
 // 建一個(gè)空Range 
 range = document.createRange(); 
 // 插入內(nèi)容 
 var cons = win.document.createTextNode(",:),"); 
 if(container.nodeType == 3){// 如是一個(gè)TextNode 
 container.insertData(pos, cons.nodeValue); 
 // 改變光標(biāo)位置 
 range.setEnd(container, pos + cons.nodeValue.length); 
 range.setStart(container, pos + cons.nodeValue.length); 
 }else{// 如果是一個(gè)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 區(qū)別

innerHTML 是一個(gè)屬性,可以取得或者設(shè)定該元素內(nèi)的 HTML 內(nèi)容,可以是任意能包含 HTML 子節(jié)點(diǎn)的元素都使用它

pasteHTML()是一個(gè)方法,在指定的文字區(qū)域內(nèi)替換該區(qū)域內(nèi)的文本或者HTML,該方法必須應(yīng)用于一個(gè) createTextRange() 或者 document.selection.createRange() 創(chuàng)建的區(qū)域上

var oRange = document.selection.createRange(); 
 if(oRange.text!=''){ 
 var oHtml = '<a href="#" rel="external nofollow" target=_blank>oRange.text</a>'; 
 oRange.pasteHTML(oHtml); 
 } 

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

最新評(píng)論

宁都县| 太和县| 成都市| 安平县| 辽宁省| 连州市| 前郭尔| 石首市| 九龙县| 都兰县| 密山市| 基隆市| 长宁县| 南华县| 尖扎县| 阳西县| 通化县| 澄城县| 潢川县| 广丰县| 醴陵市| 辰溪县| 远安县| 宁夏| 五寨县| 晋中市| 乐昌市| 开鲁县| 揭阳市| 承德县| 霍城县| 广安市| 泽普县| 青川县| 洛阳市| 襄垣县| 罗城| 丹棱县| 宜黄县| 梧州市| 岫岩|