/** * 替换textarea中的选中的文字 * @param {object} replacestr * @return {typename} */var replacetext = function(replacestr) { var textarea = top.document.getelementbyid('content'); var rangedata = getcursorposition(textarea); if (rangedata == null) { return; } var i = rangedata.start; var all = textarea.value; var temp1 = all.substring(0, i); var temp2 = all.substring(i); var temp3 = replacestr + temp2.substring(rangedata.text.length); textarea.value = temp1 + temp3;}/** * 获取textarea中的选中的文字 * @param {object} textarea * @return {typename} */var getcursorposition = function(textarea) { var rangedata = { text : "", start : 0, end : 0 }; textarea.focus(); if (textarea.setselectionrange) { // w3c rangedata.start = textarea.selectionstart; rangedata.end = textarea.selectionend; rangedata.text = (rangedata.start != rangedata.end) ? textarea.value .substring(rangedata.start, rangedata.end) : ""; } else if (top.document.selection) { // ie var i, os = top.document.selection.createrange(), // don't: or = textarea.createtextrange() or = top.document.body.createtextrange(); or.movetoelementtext(textarea); rangedata.text = os.text; rangedata.bookmark = os.getbookmark(); // object.movestart(sunit [, icount]) // return value: integer that returns the number of units moved. for (i = 0; or.compareendpoints('starttostart', os) < 0 && os.movestart("character", -1) !== 0; i++) { // why? you can alert(textarea.value.length) if (textarea.value.charat(i) == '\n') { i++; } } rangedata.start = i; rangedata.end = rangedata.text.length + rangedata.start; } if (rangedata.text == "" || (rangedata.text.length + 2) == textarea.value.length) { return null; } else { return rangedata; }}var contentcurrentpostion=null; //记录当前位置,如果是ie记录的应该是一个rang范围,firefox则记录的是一个位置值/** * 记录插入位置 * @param {object} obj */var gettextareapostion = function(obj){ if(document.selection){ obj.focus(); contentcurrentpostion=document.selection.createrange(); } else if(obj.selectionstart||obj.selectionstart=='0'){ var startpos=obj.selectionstart; var endpos=obj.selectionend; contentcurrentpostion=new object(); contentcurrentpostion.startpos=startpos; contentcurrentpostion.endpos=endpos; } else{ contentcurrentpostion=null; } }/** * 插入值 * @param {object} value * @param {object} id */var setcontent = function(value){ var str=value; var textarea = top.document.getelementbyid('content'); gettextareapostion(textarea); if(contentcurrentpostion!=null) { textarea.focus(); if(document.selection) { contentcurrentpostion.text=str; }else{ var startpos=contentcurrentpostion.startpos; var endpos=contentcurrentpostion.endpos; textarea.value = textarea.value.substring(0,startpos) + str + textarea.value.substring(endpos,textarea.value.length); } } else { textarea.value+=str; } };
修改、插入textarea值
最新推荐文章于 2022-12-02 20:23:19 发布