在文本框的光标处插入指定的文本(兼容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!");
}
}
}
<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!");
}
}
}
相关文章推荐
- 在文本框的光标处插入指定的文本(兼容IE6和Firefox)
- 在文本框的光标处插入指定的文本(另一种方式)
- 在光标处插入指定文本(支持文本域和文本框)
- [图解]在输入框和文本框中获取和设置光标位置,以及选中文本和获取选中文本值的方法 --- 详解,兼容所有浏览器。
- 插入文本到文本框里的光标所在位置
- JS插入今明日期文本到指定光标位置
- textbox 在光标位置插入字符功能的js实现(兼容ie,firefox)
- 在光标处插入字符串的实现代码 兼容IE,Firefox
- JS在文本框光标处插入文本
- JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
- iframe编辑器光标位置插入内容方法,兼容IE和Firefox
- 关于文本输入框获取光标位置以及指定位置插入内容
- textbox 在光标位置插入字符功能的js实现(兼容ie,firefox)
- js实现文本框文本域光标处插入图片文本的插件(并且光标在插入内容的内容后显示)
- 在光标处插入字符串的实现代码兼容IE,Firefox
- [原创]javascript实现textarea中光标处插入字符的实现[兼容ie和firefox]
- 城市选择控件文本框【纯javascript打造】兼容IE6以及以上、谷歌、Firefox
- 兼容firefox下textarea文本插入简单标签的方法