修改、插入textarea值

/** * 替换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;    }    };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值