您的位置:首页 > 其它

在文本框的光标处插入指定的文本(兼容IE6和Firefox)

2008-06-11 16:44 453 查看
昨天有人问我这个事,今天就来做做了,最开始是按自己的思路做,在keyup事件里对输入键做判断,以处理什么退格啊,删除啊,上下左右移动等动作,然后记录光标位置来做文本处理,费了好大劲<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title>无标题页</title>

<script type = "text/javascript" src = "JScript.js"></script>

<script type="text/javascript">

window.onload = function()

</script>

</head>

<body>

<form id="form1" runat="server">

<textarea id = "txtContent" cols = "1" rows = "1" style = "width:500px;height:300px;"></textarea><br />

<input id = "btnSource" type = "button" value = "Click me" />

</form>

</body>

</html>
这是封装后的类:

var CursorInsert = function ()

CursorInsert.prototype.SetCaret = function(textObj)

CursorInsert.prototype.InsertAtCaret = function(textObj,value)

{

if(document.all)

{

if (textObj.createTextRange && textObj.caretPos)

{

var caretPos = textObj.caretPos;

caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? value + ' ' : value;

}

else

{

textObj.value = value;

}

}

else

{

if(textObj.setSelectionRange)

{

var rangeStart = textObj.selectionStart;

var rangeEnd = textObj.selectionEnd;

var tempStr1 = textObj.value.substring(0,rangeStart);

var tempStr2 = textObj.value.substring(rangeEnd);

textObj.value = tempStr1 + value + tempStr2;

}

else

{

alert("This version of Mozilla based browser does not support setSelectionRange!");

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: