当前位置: 代码迷 >> JavaScript >> JS兑现在光标位置插入文字
  详细解决方案

JS兑现在光标位置插入文字

热度:316   发布时间:2012-08-22 09:50:35.0
JS实现在光标位置插入文字

摘自网络

?

?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>在textarea光标处插入文字</title>
<script type="text/javascript">
	//在光标位置插入文字
	function insertText(obj, str) {
		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;
		}
	}

	function moveEnd(obj) {
		obj.focus();
		var len = obj.value.length;
		if (document.selection) {
			var sel = obj.createTextRange();
			sel.moveStart('character', len);
			sel.collapse();
			sel.select();
		} else if (typeof obj.selectionStart == 'number'
				&& typeof obj.selectionEnd == 'number') {
			obj.selectionStart = obj.selectionEnd = len;
		}
	}
</script>
</head>
<body>

	<p>
		&nbsp;
		<textarea id="text" style="width: 500px; height: 80px;">欢迎访问xdwangiflytek.iteye.com</textarea>
	</p>

	<p>
		&nbsp;<input type="button" value="插入文字"
			onclick="insertText(document.getElementById('text'),' NewWord ')">
	</p>

	<p>
		&nbsp;<input type="button" value="移到末尾"
			onclick="moveEnd(document.getElementById('text'))">
	</p>
</body>
</html>
  相关解决方案