<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ursob &#187; MoistRot</title>
	<atom:link href="http://ursob.org/author/moistrot/feed/" rel="self" type="application/rss+xml" />
	<link>http://ursob.org</link>
	<description>Code &#38;&#38; Riff</description>
	<lastBuildDate>Thu, 02 Sep 2010 11:58:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ubuntu10.04 ATI显卡延时</title>
		<link>http://ursob.org/2010/05/22/ubuntu10-04-ati/</link>
		<comments>http://ursob.org/2010/05/22/ubuntu10-04-ati/#comments</comments>
		<pubDate>Sat, 22 May 2010 14:36:00 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=377</guid>
		<description><![CDATA[装好10.04之后，发现开源的ATI显卡驱动支持不是很好。花屏严重，正好等到AMD出了ATI10.4的驱动，支持Xorg7.5.可是 最小化最大化的延时bug依然。]]></description>
			<content:encoded><![CDATA[<p>
装好10.04之后，发现开源的ATI显卡驱动支持不是很好。花屏严重，正好等到AMD出了ATI10.4的驱动，支持Xorg7.5.可是 最小化最大化的延时bug依然。
</p>
<p>
好在在ubuntu论坛中找到了解决方案，和9.04一样。需要给X打个补丁。
</p>
<p>
首先将已经安装的官方ATI驱动或者开源驱动卸载（确保卸载后再进行此操作）。<br />
然后，添加源并更新系统:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> add-apt-repository ppa:info-g-com<span style="color: #000000; font-weight: bold;">/</span>xserver-xorg-1.7.6-gc
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> update <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> upgrade</pre></div></div>

</p>
<p>
更新后重启，然后安装ATI显卡驱动，再重启。延时问题已经解决。</p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/22/ubuntu10-04-ati/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>连接sql server 2000服务器的解决方案（转）</title>
		<link>http://ursob.org/2010/05/18/sql-server-2000/</link>
		<comments>http://ursob.org/2010/05/18/sql-server-2000/#comments</comments>
		<pubDate>Tue, 18 May 2010 14:01:21 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[DataBase]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=369</guid>
		<description><![CDATA[远程连接sql server 2000服务器的解决方案]]></description>
			<content:encoded><![CDATA[<p>解决方案步骤：</p>
<p>
一、看ping 服务器IP能否ping通。<br />
这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行，请检查网络，查看配置，当然得确保远程sql server 2000服务器的IP拼写正确。
</p>
<p>
二、在Dos或命令行下输入telnet 服务器IP 端口，看能否连通。
</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;">telnet 202.114.100.100 <span style="color: #000000;">1433</span></pre></div></div>

<p>
通常端口值是1433，因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题，通常这一步会出问题。通常的提示是“……无法打开连接,连接失败&#8221;。<br />
如果这一步有问题，应该检查以下选项。
</p>
<ul>
<li>
检查远程服务器是否启动了sql server 2000服务。如果没有，则启动。
</li>
<li>
检查服务器端有没启用Tcp/IP协议，因为远程连接（通过因特网）需要靠这个协议。检查方法是，在服务器上打开开始菜单->程序->Microsoft SQL Server->服务器网络实用工具，看启用的协议里是否有 tcp/ip协议，如果没有，则启用它。</li>
<li>检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的tcp/ip的属性，确保默认端口为1433，并且隐藏服务器复选框没有勾上。<br />
事实上，如果默认端口被修改，也是可以的，但是在客户端做telnet测试时，写服务器端口号时必须与服务器配置的端口号保持一致。如果隐藏服务器复选框被勾选，则意味着客户端无法通过枚举服务器来看到这台服务器，起到了保护的作用，但不影响连接，但是Tcp/ip协议的默认端口将被隐式修改为2433，在客户端连接时必须作相应的改变。</li>
<li>如果服务器端操作系统打过sp2补丁，则要对windows防火墙作一定的配置，要对它开放 1433端口，通常在测试时可以直接关掉windows防火墙（其他的防火墙也关掉最好）。 </li>
<li>检查服务器是否在1433端口侦听。如果服务器没有在tcp连接的1433端口侦听，则是连接不上的。检查方法是在服务器的dos或命令行下面输入 netstat -a -n 或者是netstat -an，在结果列表里看是否有类似 tcp 127.0.0.1 1433 listening 的项。如果没有，则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询分析器，输入 select @@version 执行后可以看到版本号，版本号在8.0.2039以下的都需要打补丁。</li>
</ul>
<p>
如果以上都没问题，这时你再做telnet 服务器ip 1433 测试，将会看到屏幕一闪之后光标在左上角不停闪动。恭喜你，你马上可以开始在企业管理器或查询分析器连接了。
</p>
<p>
三、检查客户端设置程序->Microsoft SQL Server-> 客户端网络使用工具。像在服务器网络实用工具里一样，确保客户端 tcp/ip协议启用，并且默认端口为1433（或其他端口，与服务器端保持一致就行）。
</p>
<p>
四、在企业管理器里或查询分析器连接测试。</p>
<blockquote><p>企业管理器->右键SQlserver组->新建 sqlserver注册->下一步->写入远程IP->下一步 -> 选Sqlserver登陆->下一 步->写入登陆名与密码（sa,password）->下一步-> 下一步->完成 。
</p></blockquote>
<blockquote><p>
查询分析器->文件->连接->写入远程IP->写入登录名和密码（sa,password）->确定。通常建议在查询分析器里做，因为默认情况下，通过企业管理器注册另外一台SQL Server的超时设置是4秒，而查询分析器是15秒。
</p></blockquote>
<p>修改默认连接超时的方法：
</p>
<blockquote><p>
企业管理器->工具->选项->在弹出的&#8221;SQL Server企业管理器属性&#8221;窗口中，点击&#8221;高级&#8221;选项卡->连接设置->在 登录超时（秒） 后面的框里输入一个较大的数字查询分析器->工具->选项->连接->在 登录超时（秒） 后面的框里输入一个较大的数字通常就可以连通了，如果提示错误，则进入下一步。
</p></blockquote>
<p>
五、错误产生的原因通常是由于SQL Server使用了&#8221;仅 Windows&#8221;的身份验证方式，因此用户无法使用SQL Server的登录帐户（如 sa ）进行连接。解决方法如下所示：
</p>
<ul>
<li>在服务器端使用企业管理器，并且选择&#8221;使用 Windows 身份验证&#8221;连接上 SQL Server。</li>
<li>展开&#8221;SQL Server组&#8221;，鼠标右键点击SQL Server服务器的名称，选择&#8221;属性&#8221;，再选择&#8221;安全性&#8221;选项卡。 </li>
<li>在&#8221;身份验证&#8221;下，选择&#8221;SQL Server和 Windows &#8220;。</li>
<li>重新启动SQL Server服务。（在dos或命令行下面net stop mssqlserver停止服务，net start mssqlserver启动服务，也是一种快捷的方法）。 注：在连接本地服务器时，通常使用的是命名管道协议（在服务器网络实用工具里可以看到启用的协议有这个），默认端口是445，因此在本地能连通是不能说明什么问题的，连接远程服务器是完全不同的协议）。 </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/18/sql-server-2000/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NetBeans字体显示</title>
		<link>http://ursob.org/2010/05/13/netbeans_fonts/</link>
		<comments>http://ursob.org/2010/05/13/netbeans_fonts/#comments</comments>
		<pubDate>Thu, 13 May 2010 14:35:46 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=363</guid>
		<description><![CDATA[一直没有弄好netbeans下面字体显示的锯齿问题。昨天查了下G大神，很轻松的搞定了]]></description>
			<content:encoded><![CDATA[<p>一直没有弄好netbeans下面字体显示的锯齿问题。昨天查了下G大神，很轻松的搞定了。只需要一行代码（这种方法是作用于JRE全局的，就是所有用到JRE的程序都会开启这个字体渲染，当然也可以在NB的配置文件中单独开启字体渲染）。<br />
在JDK系统配置中加上一行开启渲染参数，这个参数我知道有三个可选值。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;"><span style="color: #666666; font-style: italic;">#首先打开系统配置文件(需要root身份)</span>
<span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>profile
<span style="color: #666666; font-style: italic;">#如果进行过JAVA环境变量配置，则在环境变量配置后面加上这样一行</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">_JAVA_OPTIONS</span>=<span style="color: #ff0000;">'-Dawt.useSystemAAFontSettings=lcd'</span>
<span style="color: #666666; font-style: italic;">#lcd也可为“on&quot;</span></pre></div></div>

<p>完成后，重启X，我使用source /etc/profile 不起作用。</p>
<p><a title="Image Title" rel="lightbox" href="http://ursob.org/wp-content/uploads/2010/05/Screenshot-Chess-NetBeans-IDE-6.9-Beta.png"><img src="http://ursob.org/wp-content/uploads/2010/05/Screenshot-Chess-NetBeans-IDE-6.9-Beta-300x187.png" alt="NetBeans IDE 6.9 Beta" title="NetBeans IDE 6.9 Beta" width="300" height="187" class="size-medium wp-image-364" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/13/netbeans_fonts/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ubuntu10.04下安装Chromium</title>
		<link>http://ursob.org/2010/05/13/ubuntu10-04_chromium/</link>
		<comments>http://ursob.org/2010/05/13/ubuntu10-04_chromium/#comments</comments>
		<pubDate>Thu, 13 May 2010 13:26:49 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=359</guid>
		<description><![CDATA[ubuntu10.04安装Chrominu]]></description>
			<content:encoded><![CDATA[<p>
这里的Chromium不是Chrome。<br />
打开终端，输入下面命令：</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;">    <span style="color: #c20cb9; font-weight: bold;">sudo</span> add-apt-repository ppa:chromium-daily<span style="color: #000000; font-weight: bold;">/</span>ppa
&nbsp;
    <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> update
&nbsp;
    <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> chromium-browser</pre></div></div>

<p>完成了，如此简单，不用过多解释吧。
</p>
<p><img src="http://ursob.org/wp-content/uploads/2010/05/chromium-300x300.png" alt="chromium" title="chromium" width="300" height="300" class="size-medium wp-image-360" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/13/ubuntu10-04_chromium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>林氏营养早餐、林氏养生茶、林氏排毒餐</title>
		<link>http://ursob.org/2010/05/12/good_life/</link>
		<comments>http://ursob.org/2010/05/12/good_life/#comments</comments>
		<pubDate>Wed, 12 May 2010 13:19:43 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[养生]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=353</guid>
		<description><![CDATA[林氏营养早餐、林氏养生茶、林氏排毒餐制作方法及其功用]]></description>
			<content:encoded><![CDATA[<p>一、林氏营养早餐</p>
<p>1. 原料</p>
<p>健康熟鸡蛋一个，苹果一个（香蕉一根），一把熟豆（各种豆类的集合），一袋酸奶（牛奶），一勺蛋白粉。</p>
<p>2. 制作方法</p>
<p>放入搅拌机搅碎倒入杯中即可食用。</p>
<p>3. 营养价值及作用</p>
<p>含有丰富的维生素及蛋白质，低热量。</p>
<p>制作简单、食用方便、节省时间、营养丰富，减少胃的消化负担。几乎包含人体所需的全部营养素，在现代人忙碌的生活中，营养早餐可满足一天的营养需求，让你一整天精力充沛，适宜长期食用。</p>
<p>二、林氏养生茶</p>
<p>1. 原料</p>
<p>黄豆、黑豆、芸豆、红豆、白豆、绿豆各一把。</p>
<p>小米、苡仁、黑米各一小把。</p>
<p>以上物质加水混合，浸泡一晚（6小时以上），然后加水煮熟，待用。</p>
<p>加入花生、芝麻、坚果、葡萄干等各一小勺，橄榄油一大勺，蜂蜜一勺，蛋白质粉一勺，维生素B（1.2毫克），维生素C(60毫克)各两颗。</p>
<p>2. 制作方法</p>
<p>将以上全部倒入搅拌机搅拌成奶昔状即可食用。称为茶，意思是可以随时饮用。</p>
<p>3. 营养价值及作用</p>
<p>此食物完全可以替代中餐和晚餐，营养丰富完整，不多不少，容易消化和吸收。对于亚健康及慢性疾病患者，有非常好的康复支持作用。可应用在心血管疾病、糖尿病、老年痴呆、妇女更年期症状调整、不孕、前列腺肥大、手脚冰冷等健康问题上。同时也是一种高能量的抗癌食物。</p>
<p>三、林式排毒餐</p>
<p>1.原料</p>
<p>地瓜一个，芋头少量，土豆一个，南瓜一块，菠萝半个，蛋白质粉半勺，橄榄油两勺。食用时，最好额外补充钙镁、维生素B、维生素C、维生素E及鱼油。</p>
<p>2. 制作方法</p>
<p>食用时将地瓜、芋头、土豆、南瓜、菠萝蒸熟，放入搅拌机，加水搅拌，成奶昔状。味道绝美而香，口感卓越。可以早、中、晚三餐食用，连用一周。</p>
<p>3. 营养价值及作用</p>
<p>排毒餐的制作简单、食用方便、节省时间、营养丰富，减少胃的消化负担。几乎包含人体所需的全部营养素。可作为补充食物，长期食用，对调理慢性疾病有显著的效果。</p>
<p>体内毒素的清除，是我们要做的一个重要工作。食物中有些好东西，可以长期食用，营养丰富，又同时清肠清血。它包括：地瓜、南瓜、土豆、芋头、山药。这些食物含有丰富的维生素及蛋白质，纤维含量高、热量低、营养均衡。能够彻底排除肠内垃圾，以均衡营养，达到美颜皮肤，抗衰老作用。虽然它们的淀粉含量丰富，却可以帮助减肥。<br />
<a href="http://ursob.org/wp-content/uploads/2010/05/00092950.jpg"><img src="http://ursob.org/wp-content/uploads/2010/05/00092950-239x300.jpg" alt="养生" title="养生" width="239" height="300" class="size-medium wp-image-354" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/12/good_life/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Java的Split&#8221;.&#8221;</title>
		<link>http://ursob.org/2010/05/12/javasplit/</link>
		<comments>http://ursob.org/2010/05/12/javasplit/#comments</comments>
		<pubDate>Wed, 12 May 2010 08:09:31 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=351</guid>
		<description><![CDATA[字符串中含有&#8220;.&#8221;，且需要对其进行分割。下面语句得到的结果为空数组。

String s&#91;&#93; = str.split&#40;&#34;.&#34;&#41;;

必须经过转义之后才可以进行正常分割，所以应该写成：

String s&#91;&#93; = str.split&#40;&#34;\\.&#34;&#41;;

]]></description>
			<content:encoded><![CDATA[<p>字符串中含有<em>&#8220;.&#8221;</em>，且需要对其进行分割。下面语句得到的结果为空数组。</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #003399;">String</span> s<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> str.<span style="color: #006633;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>必须经过转义之后才可以进行正常分割，所以应该写成：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #003399;">String</span> s<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> str.<span style="color: #006633;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/12/javasplit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用Ubuntu10.04</title>
		<link>http://ursob.org/2010/05/11/ubuntu10-04/</link>
		<comments>http://ursob.org/2010/05/11/ubuntu10-04/#comments</comments>
		<pubDate>Tue, 11 May 2010 14:22:06 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=344</guid>
		<description><![CDATA[10.04的整体感觉不错，界面做的比以往的版本更细致。而且中文化比先前的版本更为完善了。我觉得细节上最让我舒服的一个地方就是在终端里面tab键补全的时候会有声音提示。]]></description>
			<content:encoded><![CDATA[<p>这文只是个说明，并非是个安装教程。</p>
<p>早先在10.04出beta1版本的时候，我就装上了。可是由于自带的显卡驱动（我是ATI 2400HD显卡），导致我的屏幕更老电影似的狂闪不停。跟本不能用，我卸载驱动。装上AMD的官方的驱动，进不了X了。仔细一看，原来10.04用的是xorg7.5，那时候的官方驱动只支持到7.4。所以，等阿等，终于，AMD的ATI显卡驱动出来支持xorg7.5了。详情见<a href="http://support.amd.com/us/gpudownload/linux/Pages/radeon_linux.aspx?type=2.4.1&#038;product=2.4.1.3.3&#038;lang=English" title="ATI 驱动10.4" target="#">这里</a>。</p>
<p>
下载好驱动，进入光盘live，仍然是狂闪。不过没关系，当我装完系统，装好驱动之后，果然不闪了。可是在开启普通的特殊效果后，最小化，和最大化，还原窗口仍然是有延时（9.04也有这个毛病，不过装了一个补丁之后就没问题了）。等待有补丁把这个问题更新。
</p>
<p>
10.04的整体感觉不错，界面做的比以往的版本更细致。而且中文化比先前的版本更为完善了。我觉得细节上最让我舒服的一个地方就是在终端里面tab键补全的时候会有声音提示。
</p>
<p>
另外，我今天安装好JDK，发现中文乱码问题已经解决了，难道是SUN被Oracle收购后，直接就立马把这个问题解决了？我的JDK版本是：
</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;">java version <span style="color: #ff0000;">&quot;1.6.0_20&quot;</span>
Java<span style="color: #7a0874; font-weight: bold;">&#40;</span>TM<span style="color: #7a0874; font-weight: bold;">&#41;</span> SE Runtime Environment <span style="color: #7a0874; font-weight: bold;">&#40;</span>build 1.6.0_20-b02<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Java HotSpot<span style="color: #7a0874; font-weight: bold;">&#40;</span>TM<span style="color: #7a0874; font-weight: bold;">&#41;</span> Server VM <span style="color: #7a0874; font-weight: bold;">&#40;</span>build <span style="color: #000000;">16.3</span>-b01, mixed mode<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>
因为在我安装NetBeans的时候很顺利的GUI都是正常中文。需要下载的朋友点<a title="JDK for Linux 下载" href="http://java.sun.com/javase/downloads/widget/jdk6.jsp" target="#">这里</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/11/ubuntu10-04/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>argument type mismatch 解决方法</title>
		<link>http://ursob.org/2010/05/11/argument-type-mismatch/</link>
		<comments>http://ursob.org/2010/05/11/argument-type-mismatch/#comments</comments>
		<pubDate>Tue, 11 May 2010 06:16:06 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=337</guid>
		<description><![CDATA[在Struts中，
当输入页面中含有日期字符串时，如果Form中对于的字段为Date类型，则会出现“argument type mismatch”错误。
原因：
Struts的ActionServlet在接受到页面的请求后，会调用RequestUtils.populate方法对Form进行填值，而此方法又调用到BeanUtils.populate方法，而该方法进行填值时对不同类型的会进行转换，而默认的ActionServlet并没有注册相应的转换函数，所以会导致转换出现错误。
解决方法：


方法1：
Form中的日期使用String类型，在Action中自己处理String到Date的类型转换。


方法2：Form中使用java.util.Date类型，自定义一个日期转换类DateConverter（需要实现Converter接口），然后在自定义的ActionServlet或者Action基类中注册DateConverter：ConvertUtils.register(new DateConverter(), Date.class)。


看了下commons-beanutils的源码发现：BeanUtilsBean含有一个beansByClassLoader静态常量，加载时会初始化一个BeanUtilsBean实例，每次调用getInstance方法返回的都是同一个BeanUtilsBean实例。所以可以在任意地方注册 DateConverter，但要确保在调用BeanUtils.populate方法前已经注册DateConverter，所以应该可以在一个初始化的Servlet中注册,或者在Form类里面静态注册。
下面是DateConverter.java

/* @(#) DateConverter.java			2010-5-11
 * 
 * Copyright (c) 2002-2010 Maxtech, Inc.
 * 66 ZhongGuanCun East Road, BeiJing, 100086, China
 * All rights reserved.
 * 
 * This software is the confidential and proprietary information of
 * Maxtech, Inc. (&#34;Confidential Information&#34;). You shall not
 * disclose such Confidential Information and shall [...]]]></description>
			<content:encoded><![CDATA[<p>在Struts中，<br />
当输入页面中含有日期字符串时，如果Form中对于的字段为Date类型，则会出现“argument type mismatch”错误。</p>
<p>原因：<br />
Struts的ActionServlet在接受到页面的请求后，会调用RequestUtils.populate方法对Form进行填值，而此方法又调用到BeanUtils.populate方法，而该方法进行填值时对不同类型的会进行转换，而默认的ActionServlet并没有注册相应的转换函数，所以会导致转换出现错误。</p>
<p>解决方法：</p>
<ul>
<li>
方法1：<br />
Form中的日期使用String类型，在Action中自己处理String到Date的类型转换。
</li>
<li>
方法2：Form中使用java.util.Date类型，自定义一个日期转换类DateConverter（需要实现Converter接口），然后在自定义的ActionServlet或者Action基类中注册DateConverter：ConvertUtils.register(new DateConverter(), Date.class)。
</li>
</ul>
<p>看了下commons-beanutils的源码发现：BeanUtilsBean含有一个beansByClassLoader静态常量，加载时会初始化一个BeanUtilsBean实例，每次调用getInstance方法返回的都是同一个BeanUtilsBean实例。所以可以在任意地方注册 DateConverter，但要确保在调用BeanUtils.populate方法前已经注册DateConverter，所以应该可以在一个初始化的Servlet中注册,或者在Form类里面静态注册。</p>
<p>下面是DateConverter.java</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #666666; font-style: italic;">/* @(#) DateConverter.java			2010-5-11
 * 
 * Copyright (c) 2002-2010 Maxtech, Inc.
 * 66 ZhongGuanCun East Road, BeiJing, 100086, China
 * All rights reserved.
 * 
 * This software is the confidential and proprietary information of
 * Maxtech, Inc. (&quot;Confidential Information&quot;). You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with Maxtech.
 * 
 */</span>
<span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">cn.com.maxtech.util</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.text.ParseException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.text.SimpleDateFormat</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.HashSet</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Iterator</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Set</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.commons.beanutils.Converter</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * @TODO
 * @author liufei
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DateConverter <span style="color: #000000; font-weight: bold;">implements</span> Converter <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 日期格式化对象.
     */</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">SimpleDateFormat</span> df <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 模式集合.
     */</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> Set<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span> patterns <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HashSet<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">static</span><span style="color: #009900;">&#123;</span>
        DateConverter.<span style="color: #006633;">patterns</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy-MM-dd&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        DateConverter.<span style="color: #006633;">patterns</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy-MM-dd HH:mm&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        DateConverter.<span style="color: #006633;">patterns</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy-MM-dd HH:mm:ss&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        DateConverter.<span style="color: #006633;">patterns</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy/MM/dd HH:mm:ss&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 日期转换器.
     * @param type Class
     * @param value Object
     * return Date Object.
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">Object</span> convert<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">Class</span> type,<span style="color: #003399;">Object</span> value<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>value <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>value <span style="color: #000000; font-weight: bold;">instanceof</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #003399;">Object</span> dateObj <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
            <span style="color: #003399;">Iterator</span> it <span style="color: #339933;">=</span> patterns.<span style="color: #006633;">iterator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>it.<span style="color: #006633;">hasNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #003399;">String</span> pattern <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span>it.<span style="color: #006633;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    df.<span style="color: #006633;">applyPattern</span><span style="color: #009900;">&#40;</span>pattern<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    dateObj <span style="color: #339933;">=</span> df.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span>value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">ParseException</span> ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #000000; font-weight: bold;">return</span> dateObj<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>可以在Action中注册，例如：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DateAction <span style="color: #000000; font-weight: bold;">extends</span> StrutsAction <span style="color: #009900;">&#123;</span>
.....
      <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #009900;">&#123;</span>
		ConvertUtils.<span style="color: #006633;">register</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> DateConverter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #003399;">Date</span>.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
.....
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>或者Form内：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DateForm <span style="color: #000000; font-weight: bold;">extends</span> ActionForm <span style="color: #009900;">&#123;</span>
......
 <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #009900;">&#123;</span>
		ConvertUtils.<span style="color: #006633;">register</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> DateConverter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #003399;">Date</span>.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
......
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/11/argument-type-mismatch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>获取输入框中光标位置</title>
		<link>http://ursob.org/2010/05/10/js_textrange/</link>
		<comments>http://ursob.org/2010/05/10/js_textrange/#comments</comments>
		<pubDate>Tue, 11 May 2010 01:42:09 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=331</guid>
		<description><![CDATA[web应用需求中，很多时候需要截取当前输入框中光标的位置，然后截获用户输入。在指定的输入框中插入文本。
而获取光标位置对于 IE 来说可是相当变态，缘于其复杂的 textrange 特性，而其他浏览器则实现了html5的相关属性，处理很简洁。

var TextRangeUtil = function&#40;&#41; &#123;
    var re = &#123;&#125;;
    var nonIE = function&#40;fieldId&#41; &#123;
        var field = document.getElementById&#40;fieldId&#41;;
        var pos = &#123;&#125;;
        pos.start = [...]]]></description>
			<content:encoded><![CDATA[<p>web应用需求中，很多时候需要截取当前输入框中光标的位置，然后截获用户输入。在指定的输入框中插入文本。<br />
而获取光标位置对于 IE 来说可是相当变态，缘于其复杂的 textrange 特性，而其他浏览器则实现了html5的相关属性，处理很简洁。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:Courier New, Courier;"><span style="color: #003366; font-weight: bold;">var</span> TextRangeUtil <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> re <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> nonIE <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>fieldId<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> field <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>fieldId<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> pos <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
        pos.<span style="color: #660066;">start</span> <span style="color: #339933;">=</span> field.<span style="color: #660066;">selectionStart</span><span style="color: #339933;">;</span>
        pos.<span style="color: #660066;">end</span> <span style="color: #339933;">=</span> field.<span style="color: #660066;">selectionEnd</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">return</span> pos<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> IE <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>fieldId<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> field <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>fieldId<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> pos <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> range <span style="color: #339933;">=</span> document.<span style="color: #660066;">selection</span>.<span style="color: #660066;">createRange</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>fieldId <span style="color: #339933;">!=</span> range.<span style="color: #660066;">parentElement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span>
&nbsp;
        <span style="color: #003366; font-weight: bold;">var</span> range_all <span style="color: #339933;">=</span> document.<span style="color: #660066;">body</span>.<span style="color: #660066;">createTextRange</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
        range_all.<span style="color: #660066;">moveToElementText</span><span style="color: #009900;">&#40;</span>field<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> sel_start <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> range_all.<span style="color: #660066;">compareEndPoints</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'StartToStart'</span><span style="color: #339933;">,</span> range<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> sel_start<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            range_all.<span style="color: #660066;">moveStart</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'character'</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> sel_start<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>field.<span style="color: #660066;">value</span>.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span><span style="color: #009900;">&#41;</span>
            sel_start<span style="color: #339933;">++;</span>
        <span style="color: #009900;">&#125;</span>
        pos.<span style="color: #660066;">start</span> <span style="color: #339933;">=</span> sel_start<span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #003366; font-weight: bold;">var</span> range_all <span style="color: #339933;">=</span> document.<span style="color: #660066;">body</span>.<span style="color: #660066;">createTextRange</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        range_all.<span style="color: #660066;">moveToElementText</span><span style="color: #009900;">&#40;</span>field<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> sel_end <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> range_all.<span style="color: #660066;">compareEndPoints</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'StartToEnd'</span><span style="color: #339933;">,</span> range<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> sel_end<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
        range_all.<span style="color: #660066;">moveStart</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'character'</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> sel_end<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>field.<span style="color: #660066;">value</span>.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span><span style="color: #009900;">&#41;</span>
            sel_end<span style="color: #339933;">++;</span>
        <span style="color: #009900;">&#125;</span>
        pos.<span style="color: #660066;">end</span> <span style="color: #339933;">=</span> sel_end<span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">return</span> pos<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    re.<span style="color: #660066;">getTextRange</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>fieldId<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> field <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>fieldId<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> field.<span style="color: #660066;">selectionStart</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">'number'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            re.<span style="color: #660066;">getTextRange</span> <span style="color: #339933;">=</span> nonIE<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">selection</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            re.<span style="color: #660066;">getTextRange</span> <span style="color: #339933;">=</span> IE<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
            re.<span style="color: #660066;">getTextRange</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> 
         <span style="color: #000066; font-weight: bold;">return</span> re.<span style="color: #660066;">getTextRange</span><span style="color: #009900;">&#40;</span>fieldId<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">return</span> re<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>返回是一个对象，此对象的re.start属性是光标的开始字符位置，re.end是光标的结束位置。</p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/10/js_textrange/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在iframe子页面获取父页面元素</title>
		<link>http://ursob.org/2010/05/06/%e5%9c%a8iframe%e5%ad%90%e9%a1%b5%e9%9d%a2%e8%8e%b7%e5%8f%96%e7%88%b6%e9%a1%b5%e9%9d%a2%e5%85%83%e7%b4%a0/</link>
		<comments>http://ursob.org/2010/05/06/%e5%9c%a8iframe%e5%ad%90%e9%a1%b5%e9%9d%a2%e8%8e%b7%e5%8f%96%e7%88%b6%e9%a1%b5%e9%9d%a2%e5%85%83%e7%b4%a0/#comments</comments>
		<pubDate>Thu, 06 May 2010 09:19:59 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://ursob.org/2010/05/06/%e5%9c%a8iframe%e5%ad%90%e9%a1%b5%e9%9d%a2%e8%8e%b7%e5%8f%96%e7%88%b6%e9%a1%b5%e9%9d%a2%e5%85%83%e7%b4%a0/</guid>
		<description><![CDATA[在iframe子页面获取父页面元素
代码如下:

$('#objId', parent.document);

在父页面 获取iframe子页面的元素
代码如下:

$(&#34;#objid&#34;,document.frames('iframename').document)

]]></description>
			<content:encoded><![CDATA[<p>在iframe子页面获取父页面元素<br />
代码如下:</p>

<div class="wp_syntax"><div class="code"><pre class="js" style="font-family:Courier New, Courier;">$('#objId', parent.document);</pre></div></div>

<p>在父页面 获取iframe子页面的元素<br />
代码如下:</p>

<div class="wp_syntax"><div class="code"><pre class="js" style="font-family:Courier New, Courier;">$(&quot;#objid&quot;,document.frames('iframename').document)</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/06/%e5%9c%a8iframe%e5%ad%90%e9%a1%b5%e9%9d%a2%e8%8e%b7%e5%8f%96%e7%88%b6%e9%a1%b5%e9%9d%a2%e5%85%83%e7%b4%a0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
