解释一段在光标位置插入字符的js代码

js|插入|光标

这篇小文本来应该在昨天发的,但是由于我昨天敲错了一个键(就是IBM笔记本键盘上的前进后退),导致文章丢失...今天就简写了。
网络上有许多能在光标位置插入字符的js代码,比较啰嗦,不适合讲解。
我写了一段简单的代码,解释一下:

1234567

<FORM> 
<TEXTAREA NAME="a" ONSELECT="this.pos=document.selection.createRange();"  onKEYUP="this.pos=document.selection.createRange();">1234567</TEXTAREA>
<INPUT TYPE="button" VALUE="插!" > 
</FORM>

总体思路:在用户选择(ONSELECT),单击(onCLICK),击键(onKEYUP)时存储选区对象,然后替换选区中内容。
也可以用(onfocus,onchange).

这里用了一个巧妙的办法绕过了我们通常的思路“光标的位置”,取而代之的是“选取的对象”。

当你选取123的时候,123这个选区对象就会进入我们自定义的pos变量中,选区的text属性是123,你插入(onCLICK)的时候,就把这个属性替换成你的内容了。

当你仅仅单击一下,选区text属性的长度是0,但是选区对象仍然存在,因此,你插入(onCLICK)的时候就把这个长度为0的text属性,替换成了你要插入的文本。看上去就像是在光标位置插入了一样。

这是目前偶能想到的最简单的办法。



考完试了,其实应该很放松的,但仍然感觉很压抑,很压抑。中午在外面吃了一个烧茄子一碗羊杂半瓶啤酒(因为太凉了),晚上就吃中午剩的茄子了,一会炒个鸡蛋,刚闷了米饭。下午帮Chris电话解决了讨厌的STD software这个垃圾插件(IE就是垃圾)。晚上要帮妈完成排版任务。word排版真不是很好用,尤其是几十万字。想心理调整两天再弄XNA...家里又我剩我一个人了,一会儿吃过饭决定去买断臂山看看。李安的片子我一直比较崇尚。希望心情能好些。bless myself...

时间: 2024-11-03 09:54:22

解释一段在光标位置插入字符的js代码的相关文章

textbox 在光标位置插入字符功能的js实现(兼容ie,firefox)_表单特效

先在本文框中点鼠标以确定光标位置.

往光标所在位置插入值的js代码_javascript技巧

复制代码 代码如下: <pre name="code" class="javascript">/** *往输入域中插入字符串(光标所在位置) *@param $t document.getElementById('fieldId') *@param myValue 要插入的值 ** function addSplitToField($t,myValue){ if (document.selection) { $t.focus(); sel = docum

JQuery在光标位置插入内容的实现代码_jquery

复制代码 代码如下: (function($){ $.fn.extend({ insertAtCaret: function(myValue){ var $t=$(this)[0]; if (document.selection) { this.focus(); sel = document.selection.createRange(); sel.text = myValue; this.focus(); } else if ($t.selectionStart || $t.selection

js-当contenteditable=&amp;amp;quot;true时,如何给光标位置插入HTML元素

问题描述 当contenteditable="true时,如何给光标位置插入HTML元素 现在项目中遇到一个这样的问题: 一个div的contenteditable设置为True时,在输入了一段文字后,列入 现在需要做的是,点击表情框,这个时候焦点会离开这个div,然后选择一个表情,将这个表情插入到原来的光标的位置. 请问各位大神 .... 这一步应该如何做到? 解决方案 因为涉及到DOM Range 在网上浏览了很多这方面的东西 仍然没有解决 . 解决方案二: http://stackover

基于jQuery的输入框在光标位置插入内容, 并选中_jquery

复制代码 代码如下: // //使用方法 //$(文本域选择器).insertContent("插入的内容"); //$(文本域选择器).insertContent("插入的内容",数值); //根据数值选中插入文本内容两边的边界, 数值: 0是表示插入文字全部选择,-1表示插入文字两边各少选中一个字符. // //在光标位置插入内容, 并选中 (function($) { $.fn.extend({ insertContent: function(myValue,

jQuery实现在textarea指定位置插入字符或表情的方法

 这篇文章主要介绍了jQuery实现在textarea指定位置插入字符或表情的方法,实例分析了jQuery操作表单元素的技巧,非常实用,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了jQuery实现在textarea指定位置插入字符或表情的方法.分享给大家供大家参考.具体实现方法如下: 1. 函数定义 代码如下: (function($){ $.fn.extend({ insertAtCaret: function(myValue){ var $t=$(this)[0]; i

JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)_javascript技巧

本文实例讲述了JS实现iframe编辑器光标位置插入内容的方法.分享给大家供大家参考,具体如下: <html> <iframe id="x" name="x"></iframe> <input type="button" onclick="t()" value="test"> <input type="button" onclick=

jquery实现在光标位置插入内容的方法_jquery

本文实例讲述了jquery实现在光标位置插入内容的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html>  <html>  <head>      <title>无标题页</title>      <script type="text/javascript" src="jquery-1.7.2.min.js"></script>     

javascript控制在光标位置插入文字适合表情的插入_javascript技巧

直接上代码吧,用js控制在光标位置插入. 在实现表情的插入时用到了. 复制代码 代码如下: <span style="font-size:18px;"><html> <head> <script type='text/javascript'> function test(str){ var tc = document.getElementById("mytextarea"); var tclen = tc.value.