可以获得当前文本框里光标位置的方法...大家讨论讨论!
很多论坛都有插入表情代码的功能,但是都不能在当前位置插入,
刚刚看到国外的一个论坛可以实现这功能,并搜索了相关的资料,
<script>
function insertsmilie(smilieface) {
if (document.PostTopic.Message.createTextRange && document.PostTopic.Message.caretPos) {
var caretPos = document.PostTopic.Message.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? smilieface + ' ' : smilieface;
document.PostTopic.Message.focus();
} else {
document.PostTopic.Message.value+=smilieface;
document.PostTopic.Message.focus();
}
}
// -->
</script>
比较令人疑惑的是 caretPos 属性,搜索了一下 MSDN ,只得到一篇文章,其中是代码是这样的...
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JScript">
function saveCaret(elem)
{
if ( elem.isTextEdit )
elem.caretPos = document.selection.createRange();
}
function getCaretPos(elem)
{
if ( elem.isTextEdit && elem.caretPos )
{
var bookmark = "~";
var orig = elem.value;
var caretPos = elem.caretPos;
caretPos.text = bookmark;
var i = elem.value.search( bookmark );
window.status = "Caret is at character " + i;
elem.value = orig;
}
}
</SCRIPT>
</HEAD>
<BODY>
<INPUT NAME="txtInput" ONSELECT="saveCaret(this)"
ONCLICK="saveCaret(this)" ONKEYUP="saveCaret(this)" VALUE="Where are you?">
<INPUT TYPE="button" VALUE="caret pos" ONCLICK="getCaretPos(txtInput)">
</BODY>
</HTML>
大家想想看这个是什么原理呢?