V2EX testarea++

为了解决v2ex的部分用户说回复到texterea的@不能到光标的问题。朱一这边做了个bookmark的js脚本,如果需要可以将下面的V2EX testarea++拖拽到搜藏夹。每次需要这个功能的时候事先点击一下这个脚本就可以了。使用于各个浏览器,包括ie

这个脚本没有做域名的判断,所以不要在别的页面上点。万一人家页面上也有replyOne函数就悲情了。

不过如果您使用的chrome,那么就可以用以下的chrome插件了。

V2EX testarea++ <- 拖拽左边这个家伙到收藏栏或者点右键添加至收藏栏
或者下载chrome插件: v2extextareaplus.crx(感谢@Hyperion同学)

实际执行的代码如下:

	window.replyOne = function(str){
		str = '@'+str+' ';
		var obj = document.getElementById('reply_content');
		obj.focus();
		if(document.selection){
			var sel = document.selection.createRange();
			sel.text = str;
		}else if(typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') {
			var startPos = obj.selectionStart,
				endPos = obj.selectionEnd,
				cursorPos = startPos,
				tmpStr = obj.value;
			obj.value = tmpStr.substring(0,startPos) + str + tmpStr.substring(endPos,tmpStr.length);
			cursorPos += str.length;
			obj.selectionStart = obj.selectionEnd = cursorPos;
		}else{
			obj.value += str;
		}
	}