用Javascript在编辑框和TextArea的光标处插入文字,支持连续插入
2012-02-23 00:00
423 查看
<html> <head> <title>Test of inserting characters at cursor position</title> <script type="text/javascript" src="jquery.pack.js"></script> <script> function setCaret(textObj){ if(textObj.createTextRange){ textObj.caretPos=document.selection.createRange().duplicate(); } } function insertAtCaret(textObj,textFeildValue){ if(document.all&&textObj.createTextRange&&textObj.caretPos){ var caretPos=textObj.caretPos; caretPos.text=caretPos.text.charAt(caretPos.text.length-1)==''?textFeildValue+'':textFeildValue; }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+textFeildValue+tempStr2; textObj.focus(); var len=textFeildValue.length; textObj.setSelectionRange(rangeStart+len,rangeStart+len); textObj.blur(); }else { textObj.value+=textFeildValue; } } $(document).ready(function(){ if($.browser.msie){ $("#tag") .click(function(){ setCaret($(this).get(0)); }) .select(function(){ setCaret($(this).get(0)); }) .keyup(function(){ setCaret($(this).get(0)); }); $("#tagA") .click(function(){ setCaret($(this).get(0)); }) .select(function(){ setCaret($(this).get(0)); }) .keyup(function(){ setCaret($(this).get(0)); }); } $("a.insertTag") .click(function(){ insertAtCaret($("#tag").get(0),$(this).html()); }); $("a.insertTagA") .click(function(){ insertAtCaret($("#tagA").get(0),$(this).html()); }); }); </script> </head> <body> References:<br/> http://www.dnew.cn/post/287.htm<br/> http://blog.vishalon.net/Post/57.aspx <div> <form> <input type="text" id="tag" value="testtesttest" size="50" /><br/> <a class="insertTag" href="javascript:void(0)">tag1</a> <a class="insertTag" href="javascript:void(0)">tag2</a> <br/> <textarea id="tagA" style="width:300px;height:120px;" >tttttt tttt</textarea><br/> <a class="insertTagA" href="javascript:void(0)">tag3</a> <a class="insertTagA" href="javascript:void(0)">tag4</a> </form> </div> </body> </html>
相关文章推荐
- javascript实现在textarea光标位置插入文字并移动光标到文字末尾
- javascript控制在光标位置插入文字适合表情的插入
- 如何在textarea的光标位置插入文字
- 如何在textarea的光标位置插入文字
- 原生javascript在textarea光标处插入表情字符
- JS在TextArea光标位置插入文字并实现移动光标到文字末尾
- 【记录】JS在TextArea光标位置插入文字+移动光标到文字末尾
- JS在TextArea光标位置插入文字并实现移动光标到文字末尾
- javascript 获取 textarea 当前光标 并插入内容
- JS在TextArea光标位置插入文字+移动光标到文字末尾
- javascript 获取 textarea 当前光标 并插入内容
- 【记录】JS在TextArea光标位置插入文字+移动光标到文字末尾
- javascript控制在光标位置插入文字
- JS在TextArea光标位置插入文字+移动光标到文字末尾
- javascript在一段文字中的光标处插入其他文字
- JS在TextArea光标位置插入文字+移动光标到文字末尾
- javascript在一段文字中的光标处插入其他文字
- 【转】怎么给javascript + div编辑框光标位置插入表情文字等?
- textarea 在光标处插入文字
- [原创]javascript实现textarea中光标处插入字符的实现[兼容ie和firefox]