﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-小鹏的blog</title><link>http://www.blogjava.net/Yameth/</link><description>Yameth</description><language>zh-cn</language><lastBuildDate>Mon, 15 Jun 2026 22:24:20 GMT</lastBuildDate><pubDate>Mon, 15 Jun 2026 22:24:20 GMT</pubDate><ttl>60</ttl><item><title>js获取TEXTAREA的光标位置并添加内容</title><link>http://www.blogjava.net/Yameth/archive/2011/11/24/364726.html</link><dc:creator>小鹏</dc:creator><author>小鹏</author><pubDate>Thu, 24 Nov 2011 06:29:00 GMT</pubDate><guid>http://www.blogjava.net/Yameth/archive/2011/11/24/364726.html</guid><wfw:comment>http://www.blogjava.net/Yameth/comments/364726.html</wfw:comment><comments>http://www.blogjava.net/Yameth/archive/2011/11/24/364726.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Yameth/comments/commentRss/364726.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Yameth/services/trackbacks/364726.html</trackback:ping><description><![CDATA[<div>昨天研究了一下js获取光标位置的方法,在查了一些资料后,发现对于多浏览器支持是很重要的。下面是一些在网上找到的代码，需要传入一个文本域的id和我们想加入的值(value) 
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img id="Codehighlighter1_28_911_Open_Image" onclick="this.style.display='none'; Codehighlighter1_28_911_Open_Text.style.display='none'; Codehighlighter1_28_911_Closed_Image.style.display='inline'; Codehighlighter1_28_911_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_28_911_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_28_911_Closed_Text.style.display='none'; Codehighlighter1_28_911_Open_Image.style.display='inline'; Codehighlighter1_28_911_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;getValue(objid,str)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_28_911_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_28_911_Open_Text"><span style="color: #000000">{&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;myField</span><span style="color: #000000">=</span><span style="color: #000000">document.getElementById(</span><span style="color: #000000">""</span><span style="color: #000000">+</span><span style="color: #000000">objid);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">IE浏览器</span><span style="color: #008000"><br /><img id="Codehighlighter1_112_224_Open_Image" onclick="this.style.display='none'; Codehighlighter1_112_224_Open_Text.style.display='none'; Codehighlighter1_112_224_Closed_Image.style.display='inline'; Codehighlighter1_112_224_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_112_224_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_112_224_Closed_Text.style.display='none'; Codehighlighter1_112_224_Open_Image.style.display='inline'; Codehighlighter1_112_224_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(document.selection)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_112_224_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_112_224_Open_Text"><span style="color: #000000">{&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;myField.focus();&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;sel&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.selection.createRange();&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;sel.text&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;str;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;sel.select();&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">火狐/网景&nbsp;浏览器&nbsp;</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(myField.selectionStart&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;myField.selectionStart&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;'</span><span style="color: #000000">0</span><span style="color: #000000">')&nbsp;<br /><img id="Codehighlighter1_314_844_Open_Image" onclick="this.style.display='none'; Codehighlighter1_314_844_Open_Text.style.display='none'; Codehighlighter1_314_844_Closed_Image.style.display='inline'; Codehighlighter1_314_844_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_314_844_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_314_844_Closed_Text.style.display='none'; Codehighlighter1_314_844_Open_Image.style.display='inline'; Codehighlighter1_314_844_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_314_844_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_314_844_Open_Text"><span style="color: #000000">{&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">得到光标前的位置</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;startPos&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myField.selectionStart;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">得到光标后的位置</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;endPos&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myField.selectionEnd;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;在加入数据之前获得滚动条的高度&nbsp;</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;restoreTop&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myField.scrollTop;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;myField.value&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myField.value.substring(</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;startPos)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;str&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;myField.value.substring(endPos,&nbsp;myField.value.length);&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">如果滚动条高度大于0</span><span style="color: #008000"><br /><img id="Codehighlighter1_656_713_Open_Image" onclick="this.style.display='none'; Codehighlighter1_656_713_Open_Text.style.display='none'; Codehighlighter1_656_713_Closed_Image.style.display='inline'; Codehighlighter1_656_713_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_656_713_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_656_713_Closed_Text.style.display='none'; Codehighlighter1_656_713_Open_Image.style.display='inline'; Codehighlighter1_656_713_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(restoreTop&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_656_713_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_656_713_Open_Text"><span style="color: #000000">{&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;返回</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myField.scrollTop&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;restoreTop;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;myField.focus();&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;myField.selectionStart&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;startPos&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;str.length;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;myField.selectionEnd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;startPos&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;str.length;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br /><img id="Codehighlighter1_854_908_Open_Image" onclick="this.style.display='none'; Codehighlighter1_854_908_Open_Text.style.display='none'; Codehighlighter1_854_908_Closed_Image.style.display='inline'; Codehighlighter1_854_908_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_854_908_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_854_908_Closed_Text.style.display='none'; Codehighlighter1_854_908_Open_Image.style.display='inline'; Codehighlighter1_854_908_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_854_908_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_854_908_Open_Text"><span style="color: #000000">{&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;myField.value&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;str;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;myField.focus();&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div><br /></div><img src ="http://www.blogjava.net/Yameth/aggbug/364726.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Yameth/" target="_blank">小鹏</a> 2011-11-24 14:29 <a href="http://www.blogjava.net/Yameth/archive/2011/11/24/364726.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>