﻿<?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-thinking-随笔分类-Web</title><link>http://www.blogjava.net/alinglau36/category/43952.html</link><description>one platform thousands thinking</description><language>zh-cn</language><lastBuildDate>Thu, 02 Nov 2017 21:44:46 GMT</lastBuildDate><pubDate>Thu, 02 Nov 2017 21:44:46 GMT</pubDate><ttl>60</ttl><item><title>jQuery.template()</title><link>http://www.blogjava.net/alinglau36/archive/2011/11/02/362514.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Wed, 02 Nov 2011 02:41:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2011/11/02/362514.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/362514.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2011/11/02/362514.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/362514.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/362514.html</trackback:ping><description><![CDATA[<div>http://api.jquery.com/jQuery.template/</div><img src ="http://www.blogjava.net/alinglau36/aggbug/362514.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2011-11-02 10:41 <a href="http://www.blogjava.net/alinglau36/archive/2011/11/02/362514.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jQuery hoverIntent</title><link>http://www.blogjava.net/alinglau36/archive/2011/11/02/362513.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Wed, 02 Nov 2011 02:40:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2011/11/02/362513.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/362513.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2011/11/02/362513.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/362513.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/362513.html</trackback:ping><description><![CDATA[<div>http://cherne.net/brian/resources/jquery.hoverIntent.html</div><br /><div>  <div id="pageHeader"> 	<ul id="nav1"><li><a href="http://cherne.net/">cherne.net</a></li><li><a href="http://cherne.net/brian/resume/">Resume</a></li><li><a href="http://cherne.net/brian/portfolio/">Portfolio</a></li><li><a href="http://cherne.net/brian/resources/">Resources</a></li></ul> 	<h1>hoverIntent jQuery Plug-in</h1> </div>  <div id="pageContent">  	<div id="main">  		<h2>What is hoverIntent?</h2> 		<p>hoverIntent is a plug-in that attempts to determine the user's  intent... like a crystal ball, only with mouse movement! It works like  (and was derived from) <a href="http://jquery.com/">jQuery</a>'s built-in <a href="http://api.jquery.com/hover/">hover</a>.  However, instead of immediately calling the onMouseOver function, it  waits until the user's mouse slows down enough before making the call.</p> 		<p>Why? To delay or prevent the accidental firing of animations or  ajax calls. Simple timeouts work for small areas, but if your target  area is large it may execute regardless of intent.</p> 		<p><a href="http://cherne.net/brian/resources/jquery.hoverIntent.js">Download hoverIntent r6 (fully-commented, uncompressed)</a></p> 		<p><a href="http://cherne.net/brian/resources/jquery.hoverIntent.minified.js">Download hoverIntent r6 (minified)</a></p> 		<p>hoverIntent r6 (2011) has all the same functionality of r5 (2007) except that the Google Chrome defect (<a href="http://cherne.net/brian/resources/jquery.hoverIntent.html#defects">known defects</a>) is fixed once you upgrade to jQuery 1.5.1.</p>   		<h2>Translations</h2> 		<p><a href="http://www.designcontest.com/show/jquery.hoverIntent-be" hreflang="be-BY">Беларуская</a> courtesy Martha Ruszkowski</p>   		<h2>Examples</h2> 	 		<noscript><p><em>If you can see this message <strong>JavaScript is disabled</strong>. This plug-in requires JavaScript to be enabled in order for the examples to work. (This is really a note to myself so the next time I look at my web site with JavaScript accidentally turned off I don't freak out and wonder why it's not working)</em></p></noscript>  		<h3>jQuery's hover (for reference)</h3> 		<pre>$("#demo1 li").hover( makeTall, makeShort )</pre> 		<ul id="demo1"><li style="height: 50px;">&nbsp;</li><li style="height: 50px;">&nbsp;</li><li style="height: 50px;">&nbsp;</li><li style="height: 50px;">hover ignores over/out events from children</li></ul> 		<p>jQuery's built-in hover calls onMouseOver/onMouseOut functions immediately.</p>  		<h3>hoverIntent as hover replacement</h3> 		<pre>$("#demo2 li").hoverIntent( makeTall, makeShort )</pre> 		<ul id="demo2"><li style="height: 50px;">&nbsp;</li><li style="height: 50px;">&nbsp;</li><li style="height: 50px;">&nbsp;</li><li style="height: 50px;">hoverIntent also ignores over/out events from children</li></ul> 		<p>hoverIntent is interchangeable with jQuery's hover. It can use the  same exact onMouseOver and onMouseOut functions and it passes the same <strong>this</strong> and <strong>event</strong> objects to those functions.</p> 	  		<h3>hoverIntent with configuration object</h3> <pre>var config = {    <br />     over: makeTall, // function = onMouseOver callback (REQUIRED)    <br />     timeout: 500, // number = milliseconds delay before onMouseOut    <br />     out: makeShort // function = onMouseOut callback (REQUIRED)    <br />};<br /><br />$("#demo3 li").hoverIntent( config )<br /></pre> 		<ul id="demo3"><li style="height: 50px;">&nbsp;</li><li style="height: 50px;">&nbsp;</li><li style="height: 50px;">&nbsp;</li><li>&nbsp;</li></ul> 		<p>To override the default configuration of hoverIntent, pass it an  object as the first (and only) parameter. The object must contain "over"  and "out" functions, in addition to any other options you'd like to  override.</p>   		<h2>Basic Configuration Options</h2> 		<p>The "timeout" delay (by default set to 0) will mostly likely be the  one you'll want to override. The "over" and "out" functions are  required but nothing prevents you from sending an empty function(){} to  either.</p>  		<h3>over:</h3> 		<p>Required. The function you'd like to call onMouseOver. Your  function receives the same "this" and "event" objects as it would from  jQuery's hover method.</p>  		<h3>timeout:</h3> 		<p>A simple delay, in milliseconds, before the "out" function is  called. If the user mouses back over the element before the timeout has  expired the "out" function will not be called (nor will the "over"  function be called). This is primarily to protect against sloppy/human  mousing trajectories that temporarily (and unintentionally) take the  user off of the target element... giving them time to return. <em>Default timeout: 0</em></p>  		<h3>out:</h3> 		<p>Required. The function you'd like to call onMouseOut. Your function  receives the same "this" and "event" objects as it would from jQuery's  hover method. Note, hoverIntent will only call the "out" function if the  "over" function has been called on that same run.</p>   		<h2>Advanced Configuration Options</h2> 		<p>When choosing the default settings for hoverIntent I tried to find  the best possible balance between responsiveness and frequency of false  positives. Modify these if you are brave, test tirelessly, and  completely understand what you are doing.</p>  		<h3>sensitivity:</h3> 		<p>If the mouse travels fewer than this number of pixels between  polling intervals, then the "over" function will be called. With the  minimum sensitivity threshold of 1, the mouse must not move between  polling intervals. With higher sensitivity thresholds you are more  likely to receive a false positive. <em>Default sensitivity: 7</em></p>  		<h3>interval:</h3> 		<p>The number of milliseconds hoverIntent waits between  reading/comparing mouse coordinates. When the user's mouse first enters  the element its coordinates are recorded. The soonest the "over"  function can be called is after a single polling interval. Setting the  polling interval higher will increase the delay before the first  possible "over" call, but also increases the time to the next point of  comparison. <em>Default interval: 100</em></p>   		<h2>Notice of DOM Manipulation</h2> 		<p>hoverIntent adds two custom attributes to every DOM element it's  assigned to. For example: &lt;li hoverIntent_t="" hoverIntent_s=""&gt;		</p> 		<ul><li>hoverIntent_t is the polling interval timer, or the mouseOut timer.</li><li>hoverIntent_s stores the state to prevent unmatched function calls.</li></ul> 		<p>Timers are stored as integers, so there should not be any <a href="http://msdn.microsoft.com/library/en-us/IETechCol/dnwebgen/ie_leak_patterns.asp">trouble with memory leaks</a>. hoverIntent state is also stored as an integer.</p>   		<h2>Known Defects</h2> 		<p>hoverIntent r5 suffers from <a href="http://code.google.com/p/chromium/issues/detail?id=68629">a defect in Google Chrome that improperly triggers mouseout when entering a child input[type="text"] element</a>.  hoverIntent r6 uses the same mouseenter/mouseleave special events as  jQuery's built-in hover, and jQuery 1.5.1 patched this issue. Thanks to  Colin Stuart for tipping me off about this and for providing isolated  code to demonstrate/test.</p> 		<p id="chrome9defect" style="background: none repeat scroll 0% 0% #eeeeee; margin-bottom: 1em;">This  page uses jQuery 1.5.1+ and hoverIntent r6, so when your cursor goes  over the text input nothing should change (it should continue to read  "enter parent" because you are still over this paragraph). <br /><input value="" type="text" /><br />  However, if you were using Google Chrome and if this page were using an  older version of jQuery or hoverIntent, moving the cursor over the text  input would improperly trigger the mouseout event, and the value would  change to "leave parent".</p> 		 		<p>If you place an element with onMouseOut event listeners flush  against the edge of the browser chrome, sometimes Internet Explorer does  not trigger an onMouseOut event immediately if your mouse leaves the  document. hoverIntent does not correct for this.</p> 		<p>jQuery's hover can take <a href="http://api.jquery.com/hover/#hover1">both a handlerIn and a handlerOut</a> <strong>or</strong> <a href="http://api.jquery.com/hover/#hover2">just a handlerIn</a>. The current version of hoverIntent requires both handlerIn and handlerOut <strong>or</strong>  a single configuration object. It was not designed to take just a  handlerIn like hover. This will be addressed in a future release.</p> 		<p>Please email me ( <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#37;&#54;&#50;&#37;&#55;&#50;&#37;&#54;&#57;&#37;&#54;&#49;&#37;&#54;&#69;&#37;&#52;&#48;&#37;&#54;&#51;&#37;&#54;&#56;&#37;&#54;&#53;&#37;&#55;&#50;&#37;&#54;&#69;&#37;&#54;&#53;&#37;&#50;&#69;&#37;&#54;&#69;&#37;&#54;&#53;&#37;&#55;&#52;">brian@cherne.net</a> ) if you have questions or would like to notify me of any defects. I will tweet about any updates from <a href="http://twitter.com/#%21/briancherne">@briancherne</a> using the tags #hoverIntent #jQuery.</p>   		<h2>The Future of hoverIntent</h2> 		<p>hoverIntent r7 (in development) will be backwards compatible with  all current implementations and include hoverIntent custom events.</p>   		<h2>Release History</h2> 		<ul><li>r7 = In development. Adding custom events.</li><li>r6 = Current stable release. Updated to correct for Google Chrome defect.</li><li>r5 = Added state to prevent unmatched function calls. This release (and previous releases) suffers from <a href="http://code.google.com/p/chromium/issues/detail?id=68629">a defect in Google Chrome that improperly triggers mouseout when entering a child input[type=text] element</a>.</li><li>r4 = Fixed polling interval timing issue (now uses a self-calling timeout to avoid interval irregularities).</li><li>r3 = Developer-only release for debugging.</li><li>r2 = Added timeout and interval references to DOM object -- keeps  timers separate from each other. Added configurable options. Added  timeout option to delay onMouseOut function call. Fixed two-interval  mouseOver bug (now setting pX and pY onMouseOver instead of hardcoded  value).</li><li>r1 = Initial release to jQuery discussion forum for feedback.</li></ul>  	</div>  </div>    </div><img src ="http://www.blogjava.net/alinglau36/aggbug/362513.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2011-11-02 10:40 <a href="http://www.blogjava.net/alinglau36/archive/2011/11/02/362513.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IE9 Only CSS Hack</title><link>http://www.blogjava.net/alinglau36/archive/2011/11/01/362433.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Tue, 01 Nov 2011 03:49:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2011/11/01/362433.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/362433.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2011/11/01/362433.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/362433.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/362433.html</trackback:ping><description><![CDATA[<div>http://blog.vervestudios.co/blog/post/2011/05/13/IE9-Only-CSS-Hack.aspx</div><br /><br /><div><div><div number1="" index0="" alt2=""><code plain="">#element {</code></div><div number2="" index1="" alt1=""><code spaces="">&nbsp;&nbsp;&nbsp;&nbsp;</code><code keyword="">color</code><code plain="">:orange;</code></div><div number3="" index2="" alt2=""><code plain="">}</code></div><div number4="" index3="" alt1=""><code plain="">#element {</code></div><div number5="" index4="" alt2=""><code spaces="">&nbsp;&nbsp;&nbsp;&nbsp;</code><code plain="">*</code><code keyword="">color</code><code plain="">: </code><code value="">white</code><code plain="">;&nbsp;&nbsp;&nbsp; </code><code comments="">/* IE6+7, doesn't work in IE8/9 as IE7 */</code></div><div number6="" index5="" alt1=""><code plain="">}</code></div><div number7="" index6="" alt2=""><code plain="">#element {</code></div><div number8="" index7="" alt1=""><code spaces="">&nbsp;&nbsp;&nbsp;&nbsp;</code><code keyword="">_color</code><code plain="">: </code><code value="">red</code><code plain="">;&nbsp;&nbsp;&nbsp;&nbsp; </code><code comments="">/* IE6 */</code></div><div number9="" index8="" alt2=""><code plain="">}</code></div><div number10="" index9="" alt1=""><code plain="">#element {</code></div><div number11="" index10="" alt2=""><code spaces="">&nbsp;&nbsp;&nbsp;&nbsp;</code><code keyword="">color</code><code plain="">: </code><code value="">green</code><code plain="">\</code><code value="">0</code><code plain="">/IE</code><code value="">8</code><code plain="">+</code><code value="">9</code><code plain="">; </code><code comments="">/* IE8+9&nbsp; */</code></div><div number12="" index11="" alt1=""><code plain="">}</code></div><div number13="" index12="" alt2=""><code plain="">:root #element { </code><code keyword="">color</code><code plain="">:pink \</code><code value="">0</code><code plain="">/IE</code><code value="">9</code><code plain="">; }&nbsp; </code><code comments="">/*&nbsp;IE9 */</code></div></div></div><img src ="http://www.blogjava.net/alinglau36/aggbug/362433.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2011-11-01 11:49 <a href="http://www.blogjava.net/alinglau36/archive/2011/11/01/362433.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>The Essentials of Writing High Quality JavaScript </title><link>http://www.blogjava.net/alinglau36/archive/2011/09/16/358793.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Fri, 16 Sep 2011 06:38:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2011/09/16/358793.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/358793.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2011/09/16/358793.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/358793.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/358793.html</trackback:ping><description><![CDATA[<div>good stuff:<br /><br />http://net.tutsplus.com/tutorials/javascript-ajax/the-essentials-of-writing-high-quality-javascript/</div><img src ="http://www.blogjava.net/alinglau36/aggbug/358793.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2011-09-16 14:38 <a href="http://www.blogjava.net/alinglau36/archive/2011/09/16/358793.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hack css in safari and opera</title><link>http://www.blogjava.net/alinglau36/archive/2011/08/11/356312.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Thu, 11 Aug 2011 08:16:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2011/08/11/356312.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/356312.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2011/08/11/356312.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/356312.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/356312.html</trackback:ping><description><![CDATA[<div><p>@media all and (min-width: 0px){ }opera和safari都支持<br /> @media screen and (-webkit-min-device-pixel-ratio:0){}<br /> 这个只支持safari，以前做表单统一样式的时候研究过。<br /> 如果想区分opera和safari的话先写<br /> @media all and (min-width: 0px){<br /> }<br /> 然后写<br /> @media screen and (-webkit-min-device-pixel-ratio:0){}<br /> 就OK了</p> <p>div{ width:100px; height:200px;}<br /> @media all and (min-width: 0px){ div{ background:red} }<br /> @media screen and (-webkit-min-device-pixel-ratio:0){div{background:#000}}</p> <p>可以试下</p></div><img src ="http://www.blogjava.net/alinglau36/aggbug/356312.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2011-08-11 16:16 <a href="http://www.blogjava.net/alinglau36/archive/2011/08/11/356312.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>freemarker数字格式化带来的操作问题</title><link>http://www.blogjava.net/alinglau36/archive/2011/07/13/354284.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Wed, 13 Jul 2011 09:37:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2011/07/13/354284.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/354284.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2011/07/13/354284.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/354284.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/354284.html</trackback:ping><description><![CDATA[freemarker在解析数据格式的时候，自动默认将数字按3为分割（1，000），这个问题给操作带来一定的额外处理复杂度，解决方法有如下几种： <br />&nbsp;&nbsp;&nbsp; 1、在模板中直接加.toString()转化数字为字符串，如：${languageList.id.toString()}； <br />&nbsp;&nbsp;&nbsp; 2、在freemarker配置文件freemarker.properties加&lt;#setting number_format="#"&gt;或者&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;#setting number_format="0"&gt;； <br />&nbsp;&nbsp;&nbsp; 3、在模板中直接加&lt;#setting number_format="#"&gt;或者&lt;#setting  number_format="0"&gt;，如：&lt;#if AdminLanguagePaginationMsg?exists&gt; <br />	&lt;#setting number_format="#"&gt;<img src ="http://www.blogjava.net/alinglau36/aggbug/354284.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2011-07-13 17:37 <a href="http://www.blogjava.net/alinglau36/archive/2011/07/13/354284.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于JavaScript中apply与call的用法意义及区别(转)</title><link>http://www.blogjava.net/alinglau36/archive/2011/04/11/348038.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Mon, 11 Apr 2011 02:27:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2011/04/11/348038.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/348038.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2011/04/11/348038.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/348038.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/348038.html</trackback:ping><description><![CDATA[<h2>
<a id="ctl01_TitleUrl" href="http://www.cnblogs.com/treasurelife/archive/2008/03/05/1092251.html">关于JavaScript中apply与call的用法意义及区别(转)</a>
</h2>
<div id="cnblogs_post_body">
<p>JavaScript中有一个call和apply方法，其作用基本相同，但也有略微的区别。<br />
<br />
先来看看JS手册中对call的解释：<br />
</p>
<div style="border: 1px solid #666666; background-color: #fafafa;">call 方法<br />
调用一个对象的一个方法，以另一个对象替换当前对象。<br />
<br />
call([thisObj[,arg1[, arg2[,&nbsp;&nbsp; [,.argN]]]]])<br />
<br />
<strong>参数</strong><br />
thisObj<br />
可选项。将被用作当前对象的对象。<br />
<br />
arg1, arg2,&nbsp;&nbsp;, argN<br />
可选项。将被传递方法参数序列。<br />
<br />
<strong>说明</strong><br />
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。<br />
<br />
如果没有提供 thisObj 参数，那么 Global 对象被用作 thisObj。<br />
<br />
</div>
<p>说明白一点其实就是更改对象的内部指针，即改变对象的this指向的内容。这在面向对象的js编程过程中有时是很有用的。<br />
<br />
引用网上一个代码段，运行后自然就明白其道理。<br />
</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;">&nbsp;id</span><span style="color: #0000ff;">="myText"</span><span style="color: #ff0000;">&nbsp;&nbsp;&nbsp;value</span><span style="color: #0000ff;">="input&nbsp;text"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000; background-color: #f5f5f5;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5;">function</span><span style="color: #000000; background-color: #f5f5f5;">&nbsp;Obj(){</span><span style="color: #0000ff; background-color: #f5f5f5;">this</span><span style="color: #000000; background-color: #f5f5f5;">.value</span><span style="color: #000000; background-color: #f5f5f5;">=</span><span style="color: #000000; background-color: #f5f5f5;">"</span><span style="color: #000000; background-color: #f5f5f5;">对象！</span><span style="color: #000000; background-color: #f5f5f5;">"</span><span style="color: #000000; background-color: #f5f5f5;">;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5;">var</span><span style="color: #000000; background-color: #f5f5f5;">&nbsp;value</span><span style="color: #000000; background-color: #f5f5f5;">=</span><span style="color: #000000; background-color: #f5f5f5;">"</span><span style="color: #000000; background-color: #f5f5f5;">global&nbsp;变量</span><span style="color: #000000; background-color: #f5f5f5;">"</span><span style="color: #000000; background-color: #f5f5f5;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5;">function</span><span style="color: #000000; background-color: #f5f5f5;">&nbsp;Fun1(){alert(</span><span style="color: #0000ff; background-color: #f5f5f5;">this</span><span style="color: #000000; background-color: #f5f5f5;">.value);}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;window.Fun1();&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5;">//</span><span style="color: #008000; background-color: #f5f5f5;">global&nbsp;变量</span><span style="color: #008000; background-color: #f5f5f5;"><br />
</span><span style="color: #000000; background-color: #f5f5f5;">&nbsp;&nbsp;&nbsp;&nbsp;Fun1.call(window);&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5;">//</span><span style="color: #008000; background-color: #f5f5f5;">global&nbsp;变量</span><span style="color: #008000; background-color: #f5f5f5;"><br />
</span><span style="color: #000000; background-color: #f5f5f5;">&nbsp;&nbsp;&nbsp;&nbsp;Fun1.call(document.getElementById('myText'));&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5;">//</span><span style="color: #008000; background-color: #f5f5f5;">input&nbsp;text</span><span style="color: #008000; background-color: #f5f5f5;"><br />
</span><span style="color: #000000; background-color: #f5f5f5;">&nbsp;&nbsp;&nbsp;&nbsp;Fun1.call(</span><span style="color: #0000ff; background-color: #f5f5f5;">new</span><span style="color: #000000; background-color: #f5f5f5;">&nbsp;Obj());&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5;">//</span><span style="color: #008000; background-color: #f5f5f5;">对象！</span><span style="color: #008000; background-color: #f5f5f5;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span></div>
<br />
call函数和apply方法的第一个参数都是要传入给当前对象的对象，及函数内部的this。后面的参数都是传递给当前对象的参数。<br />
运行如下代码：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&lt;</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;func</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span>&nbsp;<span style="color: #0000ff;">function</span><span style="color: #000000;">(){</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.a</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">func</span><span style="color: #000000;">"</span><span style="color: #000000;">}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;myfunc</span><span style="color: #000000;">=</span><span style="color: #0000ff;">function</span><span style="color: #000000;">(x){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;a</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">myfunc</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.a);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(x);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;myfunc.call(func,</span><span style="color: #000000;">"</span><span style="color: #000000;">var</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span></div>
<br />
可见分别弹出了func和var。到这里就对call的每个参数的意义有所了解了。<br />
<br />
对于apply和call两者在作用上是相同的，但两者在参数上有区别的。<br />
<span style="color: #ff0000;">对于第一个参数意义都一样，但对第二个参数：<br />
apply传入的是一个参数数组，也就是将多个参数组合成为一个数组传入，而call则作为call的参数传入（从第二个参数开始）。</span><br />
如 func.call(func1,var1,var2,var3)对应的apply写法为：func.apply(func1,[var1,var2,var3])<br />
<br />
同时使用apply的好处是可以直接将当前函数的arguments对象作为apply的第二个参数传入</div>
<img src ="http://www.blogjava.net/alinglau36/aggbug/348038.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2011-04-11 10:27 <a href="http://www.blogjava.net/alinglau36/archive/2011/04/11/348038.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Freemarker操作字符串</title><link>http://www.blogjava.net/alinglau36/archive/2011/02/23/344970.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Wed, 23 Feb 2011 06:04:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2011/02/23/344970.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/344970.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2011/02/23/344970.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/344970.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/344970.html</trackback:ping><description><![CDATA[<p>1、substring（start,end）从一个字符串中截取子串<br />
start:截取子串开始的索引，start必须大于等于0，小于等于end<br />
end: 截取子串的长度，end必须大于等于0，小于等于字符串长度，如果省略该参数，默认为字符串长度。<br />
例子：<br />
${&#8216;str&#8217;?substring(0)}&#224;结果为str<br />
${&#8216;str&#8217;?substring(1)}&#224;结果为tr<br />
${&#8216;str&#8217;?substring(2)}&#224;结果为r<br />
${&#8216;str&#8217;?substring(3)}&#224;结果为<br />
${&#8216;str&#8217;?substring(0,0)}&#224;结果为<br />
${&#8216;str&#8217;?substring(0,1)}&#224;结果为s<br />
${&#8216;str&#8217;?substring(0,2)}&#224;结果为st<br />
${&#8216;str&#8217;?substring(0,3)}&#224;结果为str</p>
<p>2、cap_first 将字符串中的第一个单词的首字母变为大写。<br />
${&#8216;str&#8217;？cap_first}&#224;结果为Str<br />
3、uncap_first将字符串中的第一个单词的首字母变为小写。<br />
${&#8216;Str&#8217;？cap_first}&#224;结果为str<br />
4、 capitalize将字符串中的所有单词的首字母变为大写<br />
${&#8216;str&#8217;？ capitalize}&#224;结果为STR</p>
<p>5、 date,time，datetime将字符串转换为日期<br />
例如：<br />
&lt;#assign date1=&#8221;2009-10-12&#8221;?date(&#8220;yyyy-MM-dd&#8221;)&gt;<br />
&lt;#assign date2=&#8221;9:28:20&#8221;?time(&#8220;HH:mm:ss&#8221;)&gt;<br />
&lt;#assign date3=&#8221; 2009-10-12 9:28:20&#8221;?time(&#8220;HH:mm:ss&#8221;)&gt;<br />
${date1}&#224;结果为2009-10-12<br />
${date2}&#224;结果为9:28:20<br />
${date3}&#224;结果为2009-10-12 9:28:20<br />
注意：如果指定的字符串格式不正确将引发错误。</p>
<p>6、ends_with 判断某个字符串是否由某个子串结尾，返回布尔值。<br />
${&#8220;string&#8221;?ends_with(&#8220;ing&#8221;)?string} 返回结果为true<br />
注意：布尔值必须转换为字符串才能输出</p>
<p>7、html 用于将字符串中的&lt;、&gt;、&amp;和&#8220;替换为对应得&amp;lt;&amp;gt;&amp;quot:&amp;amp</p>
<p>8、index_of（substring,start）在字符串中查找某个子串，返回找到子串的第一个字符的索引，如果没有找到子串，则返回-1。<br />
Start参数用于指定从字符串的那个索引处开始搜索，start为数字值。<br />
如果start大于字符串长度，则start取值等于字符串长度，如果start小于0， 则start取值为0。<br />
${&#8220;string&#8221;?index_of(&#8220;in&#8221;) &#224;结果为3<br />
${&#8220;string&#8221;?index_of(&#8220;ab&#8221;) &#224;结果为-1</p>
<p>9、length返回字符串的长度 ${&#8220;string&#8221;?length}&#224;结果为6</p>
<p>10、lower_case将字符串转为小写<br />
${&#8220;STRING&#8221;?lower_case}&#224;结果为string</p>
<p>11、upper_case将字符串转为大写<br />
${&#8220;string&#8221;?upper_case}&#224;结果为STRING</p>
<p>12、contains 判断字符中是否包含某个子串。返回布尔值<br />
${&#8220;string&#8221;?contains(&#8220;ing&#8221;)?string} &#224;结果为true<br />
注意：布尔值必须转换为字符串才能输出</p>
<p>13、number将字符串转换为数字<br />
${&#8220;111.11&#8221;?number}&#224;结果为111.11</p>
<p>14、replace用于将字符串中的一部分从左到右替换为另外的字符串。<br />
${&#8220;strabg&#8221;?replace(&#8220;ab&#8221;,&#8221;in&#8221;)} &#224;结果为string</p>
<p>15、split使用指定的分隔符将一个字符串拆分为一组字符串</p>
<p>&lt;#list &#8220;This|is|split&#8221;?split(&#8220;|&#8221;) as s&gt;<br />
${s}<br />
&lt;/#list&gt;<br />
结果为:<br />
This<br />
is<br />
split</p>
<p>16、 trim 删除字符串首尾空格 ${&#8220; String &#8221;?trim} &#224;结果为String<br />
<br /><strong>
如果本文对您有帮助并且要鼓励我的话，请扫描如下二维码支持本人的劳动成果，多谢了！</strong><br /><br /><img src="http://www.blogjava.net/images/blogjava_net/alinglau36/wcpay.jpg" width="500" height="685" alt="" /><br />
</p><img src ="http://www.blogjava.net/alinglau36/aggbug/344970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2011-02-23 14:04 <a href="http://www.blogjava.net/alinglau36/archive/2011/02/23/344970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>你不知道的 JavaScript - “this”</title><link>http://www.blogjava.net/alinglau36/archive/2011/02/09/344000.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Wed, 09 Feb 2011 15:25:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2011/02/09/344000.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/344000.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2011/02/09/344000.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/344000.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/344000.html</trackback:ping><description><![CDATA[http://www.yaosansi.com/post/1263.html<br />
<br />
pretty good, worth reading. <br />
<br />
<img src ="http://www.blogjava.net/alinglau36/aggbug/344000.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2011-02-09 23:25 <a href="http://www.blogjava.net/alinglau36/archive/2011/02/09/344000.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>YAHOO.util.Dom之寻找节点(转)</title><link>http://www.blogjava.net/alinglau36/archive/2011/02/01/343835.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Tue, 01 Feb 2011 00:55:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2011/02/01/343835.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/343835.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2011/02/01/343835.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/343835.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/343835.html</trackback:ping><description><![CDATA[<h2>YAHOO.util.Dom之寻找节点</h2>
<p>YUI的Dom方法一共有45个，在这里谈一下我学习过程遇到的问题和经验，先介绍17个寻找节点类型的Dom方法。</p>
<p>get(el)：记得初学JavaScript的时候，最先认识的两个方法就是getElementById和
getElementsByTagName，这两个东东也基本上能够找到大多数你需要找的东西啦。YUI里的get方法跟getElementById类
似，但是它的能力却要强很多了，el可以是String、HTMLElement或者Array。</p>
<p>getElementsBy ( method , tag , root , apply , o , overrides
)：这个会和getElementsByTagName比较像一点点吧，但是功能差好远，基本上getElementsBy应该可以找到一切你想找的元
素，method是定义一个校验目标元素的方法，返回一个boolean值，tag是目标元素的nodeName，root是指在哪个元素中进行寻找，也
可以说成是一个范围吧。apply，我必须要说下它。。当初它困扰我了半天，YUI给出的解释是&#8220;A function to apply to
each element when found &#8221;，可以理解为一个回调函数吧，再看看YUI的代码，其中有这么一段：</p>
<pre>if (apply) {<br />
Y.Dom.batch(nodes, apply, o, overrides);<br />
}<br />
</pre>
<p>我当时的理解是，因为最终返回的是一个节点的数组嘛，我就以为执行完前边的校验后得到的结果再在apply中进行一次，也就是我在apply中再对
结果元素进行下一步的节点寻找，那么最后返回的应该是apply执行后得到的所有节点集合。。。可是无论我怎么试，最终返回的都是通过method方法所
得到数组，并没有再次通过apply获得更多的元素，嘿嘿，不要见笑哈，当时就是这么想的。。。后来发现，实际上不是这样子，我理解错误的原因只要就在那
个batch上，当时的错误在于，我把batch放进getElementsBy里了，那么在batch里边return后应该不会再继续执行
return nodes了，但是实际上这里的Y.Dom.batch(nodes, apply, o,
overrides)只是一个最终的结果而已，所以return
nodes还是会执行的。那么这个apply的作用在何处呢？其实作用就是执行一次回调嘛哈，它是可以实现我之前的想法的，但是不是直接返回的，举个例
子：</p>
<pre>var uls = YAHOO.util.Dom.getElementsBy(function(el){<br />
return el.className === 'J_tab';<br />
},'ul','content');<br />
</pre>
<p>这是寻找id为content的容器下className为J_tab的节点，那么如果我同时还需要获取每个ul下的所有li节点该怎么做呢，总不能再来一次循环吧，当然也可以啦，不过要好好利用下YUI吧，那就是让它获取ul的同时获取li：</p>
<pre>var lis = [];<br />
function getli(obj) {<br />
lis.push(obj.getElementsByTagName('li'));<br />
}<br />
var uls = YAHOO.util.Dom.getElementsBy(function(el){<br />
return el.className === 'J_tab';<br />
},'ul','content',getli);</pre>
<p>OK，这样子就一举两得了哈~后边的作用域和上下文就不多说啦，关于batch的神奇，下次再说哈，真的很神奇。。。</p>
<p>getElementBy ( method , tag , root )：这个就是通过method校验的第一个元素。</p>
<p>getElementsByClassName ( className , tag , root , apply , o , overrides )：是通过className进行元素寻找，其实这个方法是getElementsBy的一个特殊方法。</p>
<p>getChildren ( node )：这个与Dom中的childNode类似。</p>
<p>getChildrenBy ( node , method )：通过method方法过滤子元素，注意参数的顺序以及node不可为id。</p>
<p>getFirstChild ( node )：寻找第一个子元素，跟Dom中的firstChild有些类似。</p>
<p>getFirstChildBy ( node , method )：寻找第一个通过method校验的子元素，注意参数的顺序以及node不可为id。其实这个等同于getChildrenBy得到的第一个元素。</p>
<p>getLastChild ( node )：寻找最后一个子元素，与Dom中的lastChild有些类似。</p>
<p>getLastChildBy ( node , method )：与getFirstChildBy相反，倒着寻找。</p>
<p>getAncestorBy ( node , method )：寻找父节点，可以无限的往上级寻找，直到找到为止，node不能为id，跟Dom中的parentNode类似，不过这里不用反复的parentNode啦。</p>
<p>getAncestorByClassName ( node , className )：通过className寻找父节点，是getAncestorBy的一个特殊方法。</p>
<p>getAncestorByTagName ( node , tagName )：通过tagName寻找父节点，是getAncestorBy的一个特殊方法。</p>
<p>getNextSibling ( node )：寻找紧挨的下一个同级非文本节点的节点，与Dom中的nextSibling类似，省去了判断文本节点麻烦。</p>
<p>getNextSiblingBy ( node , method )：无限的往下找直到找到通过method校验的同级非文本节点，node不能为id，有了这个方法就不用无限的nextSibling啦。</p>
<p>getPreviousSibling ( node )：寻找紧挨的上一个同级非文本节点的节点，与Dom中的previousSibling类似，可以省去判断文本节点的麻烦。</p>
<p>getPreviousSiblingBy ( node , method )：无限的往前找直到找到通过method校验的同级非文本节点，node不能为id。</p>
<img src ="http://www.blogjava.net/alinglau36/aggbug/343835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2011-02-01 08:55 <a href="http://www.blogjava.net/alinglau36/archive/2011/02/01/343835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Type mismatch in IE</title><link>http://www.blogjava.net/alinglau36/archive/2011/01/26/343562.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Wed, 26 Jan 2011 03:35:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2011/01/26/343562.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/343562.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2011/01/26/343562.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/343562.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/343562.html</trackback:ping><description><![CDATA[<font face="verdana" color="#000000" size="2">A:<br />
I am writing an AJAX application. </font>
<p><font face="verdana" color="#000000" size="2">Here is a piece of my code: </font></p>
<p><font face="verdana" color="#000000" size="2">http.open("GET", fullURL, true); <br />
http.onreadystatechange = handleHttpResponse; </font></p>
<p><font face="verdana" color="#000000" size="2">the handleHttpResponse is the function that processes the returned data. </font></p>
<p><font face="verdana" color="#000000" size="2">If I wanted to pass a string in to handleHttpResponse, I use: </font></p>
<p><font face="verdana" color="#000000" size="2">= handleHttpResponse(user_name); </font></p>
<p><font face="verdana" color="#000000" size="2">function handleHttpResponse_remtrip(string) { <br />
alert(string); <br />
.. other code .. <br />
} </font></p>
<p><font face="verdana" color="#000000" size="2">This generates a "Type mismatch" error. What gives?<!-- /post --> </font></p>
<br />
B:<br />
<font face="verdana" color="#000000" size="2">if you do this: </font>
<p><font face="verdana" color="#000000" size="2">http.onreadystatechange = handleHttpResponse(user_name); </font></p>
<p><font face="verdana" color="#000000" size="2">then you are assigning the <em>returned value</em> of handleHttpResponse and not the function itself. </font></p>
<p><font face="verdana" color="#000000" size="2">You could try this: </font></p>
<p><font face="verdana" color="#000000" size="2">http.onreadystatechange = createFunc(user_name); </font></p>
<p><font face="verdana" color="#000000" size="2">function createFunc(v) { <br />
return function() { <br />
alert(v); <br />
} <br />
} </font></p>
<img src ="http://www.blogjava.net/alinglau36/aggbug/343562.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2011-01-26 11:35 <a href="http://www.blogjava.net/alinglau36/archive/2011/01/26/343562.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax demo</title><link>http://www.blogjava.net/alinglau36/archive/2011/01/07/342530.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Fri, 07 Jan 2011 09:55:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2011/01/07/342530.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/342530.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2011/01/07/342530.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/342530.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/342530.html</trackback:ping><description><![CDATA[http://www.w3school.com.cn/example/ajax_examples.asp
<img src ="http://www.blogjava.net/alinglau36/aggbug/342530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2011-01-07 17:55 <a href="http://www.blogjava.net/alinglau36/archive/2011/01/07/342530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> JavaScript：prototype属性使用方法（转）</title><link>http://www.blogjava.net/alinglau36/archive/2010/12/10/340271.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Fri, 10 Dec 2010 07:57:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2010/12/10/340271.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/340271.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2010/12/10/340271.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/340271.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/340271.html</trackback:ping><description><![CDATA[&nbsp;属性和方法在不在的问题简单，可是属性和方法变不变化的问题可就严重了。在不在我们可以检测，变不变呢？比如，请看下面的代码：<br />
转自此<a href="http://blog.csdn.net/xiaoyuemian/archive/2009/01/20/3844305.aspx">http://blog.csdn.net/xiaoyuemian/archive/2009/01/20/3844305.aspx</a><br />
<div>
<div>
<div><a href="http://blog.csdn.net/xiaoyuemian/archive/2009/01/20/3844305.aspx#">view plain</a><a href="http://blog.csdn.net/xiaoyuemian/archive/2009/01/20/3844305.aspx#">copy to clipboard</a><a href="http://blog.csdn.net/xiaoyuemian/archive/2009/01/20/3844305.aspx#">print</a><a href="http://blog.csdn.net/xiaoyuemian/archive/2009/01/20/3844305.aspx#">?</a></div>
</div>
<ol start="1">
    <li>function&nbsp;MyObject(name,&nbsp;size)&nbsp;&nbsp;</li>
    <li>{&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;this.name&nbsp;=&nbsp;name;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;this.size&nbsp;=&nbsp;size;&nbsp;&nbsp;</li>
    <li>}&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;</li>
    <li>MyObject.prototype.color&nbsp;=&nbsp;"red";&nbsp;&nbsp;</li>
    <li>MyObject.prototype.tellColor&nbsp;=&nbsp;function()&nbsp;&nbsp;</li>
    <li>{&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;"color&nbsp;of&nbsp;"+this.name+"&nbsp;is&nbsp;"+this.color;&nbsp;&nbsp;</li>
    <li>}&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;</li>
    <li>var&nbsp;myobj1&nbsp;=&nbsp;new&nbsp;MyObject("tiddles",&nbsp;"7.5&nbsp;meters");&nbsp;&nbsp;</li>
    <li>domDiv.innerHTML&nbsp;+=&nbsp;myobj1.tellColor()+"&lt;br&nbsp;/&gt;&lt;br&nbsp;/&gt;";&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyObject.prototype.color&nbsp;=&nbsp;"green";&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;domDiv.innerHTML&nbsp;+=&nbsp;myobj1.tellColor()+"&lt;br&nbsp;/&gt;&lt;br&nbsp;/&gt;";&nbsp; <br />
    </li>
</ol>
</div>
<img src ="http://www.blogjava.net/alinglau36/aggbug/340271.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2010-12-10 15:57 <a href="http://www.blogjava.net/alinglau36/archive/2010/12/10/340271.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>YUI学习笔记</title><link>http://www.blogjava.net/alinglau36/archive/2010/06/29/324793.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Tue, 29 Jun 2010 08:55:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2010/06/29/324793.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/324793.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2010/06/29/324793.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/324793.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/324793.html</trackback:ping><description><![CDATA[<p>
最近要写个网页项目，需要很多动态功能，本来想用自己非常熟悉的AS3来做，后来无意中了解了YUI，发现其实现的功能非常强大，而且架构和AS3很接近。于是花了两个小时到其官方网站<a href="http://developer.yahoo.com/yui/">http://developer.yahoo.com/yui/</a>上深入学习了一下，解决了项目中一些原来非常棘手的问题。</p>
<p>这里是些学习笔记：</p>
<p>================连接类==================<br />
1- YUI connect:<br />
var callback =<br />
{<br />
success: function(res) {}, //正常返回处理函数<br />
failure: function(res) {}, //出错返回处理函数<br />
argument: [argument1, argument2, argument3]
//可以在success函数和failure函数中访</p>
<p>问的变量<br />
}<br />
var transaction = YAHOO.util.Connect.asyncRequest(&#8217;GET&#8217;, sUrl,
callback,</p>
<p>null);</p>
<p>2- 发送表单：<br />
YAHOO.util.Connect.setForm(formId);<br />
var cObj = YAHOO.util.Connect.asyncRequest(&#8217;POST&#8217;,
&#8216;http://www.yahoo.com&#8217;,</p>
<p>callback);</p>
<p>查看请求是否已经处理完<br />
var cObj = YAHOO.util.Connect.asyncRequest(&#8217;</p>
<p>GET&#8217;,''http://www.yahoo.com&#8217;,callback);<br />
var callStatus = YAHOO.util.Connect.isCallInProgress(cObj);</p>
<p>超时取消请求</p>
<p>var cObj = YAHOO.util.Connect.asyncRequest(&#8217;GET&#8217;, sUrl,
callback);<br />
setTimeout(&#8221;YAHOO.util.Connect.abort(cObj)&#8221;,10000);</p>
<p>================事件类==================<br />
3- 事件侦听<br />
YAHOO.util.Event.addListener(element,eventType,fn,obj,override)<br />
参数：<br />
element：为绑定事件的元素id，可以是一个数组，以支持批量操作<br />
eventType：为事件类型<br />
fn：为事件响应的回调函数<br />
obj：当override为true时，为回调函数传入的参数对象；当override为false时，该参数被</p>
<p>忽略。<br />
override：<br />
返回值类型：Boolean<br />
功能：给指定的element绑定事件响应函数</p>
<p>4- 删除事件侦听<br />
YAHOO.util.Event.removeListener:function(element,eventType,fn)<br />
参数：<br />
element：为绑定事件的元素id,<br />
eventType：事件类型<br />
fn：为事件响应函数<br />
返回值类型：Boolean<br />
功能：给指定的element解除绑定事件</p>
<p>5- 侦听装载完成<br />
YAHOO.util.Event.onContentReady ( p_id , p_fn , p_obj , p_override
)<br />
参数：<br />
p_id：为绑定事件的元素id,<br />
p_fn：为事件响应函数<br />
p_obj：同addListener的obj参数<br />
p_override：同addListener的override参数<br />
返回值类型：无<br />
功能：与onAvailable类似，但不同的是事件响应函数是等到element可以安全的修改的时候</p>
<p>才响应。</p>
<p>6- 侦听DOM第一次可用时执行响应函数<br />
YAHOO.util.Event.onDOMReady ( p_fn , p_obj , p_scope )<br />
参数：<br />
p_fn：为事件响应函数<br />
p_obj：同addListener的obj参数<br />
p_scope：同addListener的override参数<br />
返回值类型：无<br />
功能：当DOM第一次可用时执行响应函数。</p>
<p>7- 返回侦听对象<br />
YAHOO.util.Event.getListeners ( el , sType )<br />
参数：<br />
el：HTML element<br />
sType：事件类型，String类型<br />
返回值类型：Object{<br />
type：事件类型<br />
&nbsp;<wbr>fn：addListener添加的事件响应函数<br />
&nbsp;<wbr>obj：提供给事件响应函数的参数对象<br />
&nbsp;<wbr>adjust：否获取缺省的事件监听器<br />
&nbsp;<wbr>index：UI事件监听器列表中的位置<br />
}</p>
<ins>来源：(<a href="http://blog.sina.com.cn/s/blog_5d41b3800100gmap.html">http://blog.sina.com.cn/s/blog_5d41b3800100gmap.html</a>) - YUI学习笔记_千峰_新浪博客</ins>
<p>8- 获取事件发生时的时间<br />
YAHOO.util.Event.getTime( event)<br />
参数：<br />
event：事件对象<br />
返回值类型：Date对象</p>
<p>9- 获取事件发生时的页面标签。对于IE即window.event.srcElement<br />
YAHOO.util.Event.getTarget(ev , resolveTextNode)<br />
参数：<br />
evt：事件对象<br />
resolveTextNode：<br />
返回值类型： HTML element</p>
<p>10- 创建和使用自定义的事件<br />
A.使用CustomerEvent对象创建自己的事件<br />
function TestObj(name) {<br />
this.name = name;<br />
this.event1 = new YAHOO.util.CustomEvent(&#8221;event1〃, this);<br />
}<br />
YAHOO.util.CustomEvent = function(type, oScope);<br />
type表示事件类型的字符串<br />
B.注册对自定义事件的响应函数<br />
function Consumer(name, testObj) {<br />
this.name = name;<br />
this.testObj = testObj;<br />
this.testObj.event1.subscribe(this.onEvent1, this);<br />
}<br />
C.响应函数<br />
Consumer.prototype.onEvent1 = function(type, args, me) {<br />
alert(&#8221; this: &#8221; + this +<br />
&#8220;"n this.name: &#8221; + this.name +<br />
&#8220;"n type: &#8221; + type +<br />
&#8220;"n args[0].data: &#8221; + args[0].data +<br />
&#8220;"n me.name: &#8221; + me.name);<br />
}</p>
<p>11- 当。。。时处理<br />
YAHOO.util.Event.on("toolbar", "focusin", function(e)
{&nbsp;<wbr>&nbsp;<wbr><br />
&nbsp;<wbr>&nbsp;<wbr> YAHOO.log("target: " +
e.target.id);&nbsp;<wbr>&nbsp;<wbr><br />
});&nbsp;<wbr>&nbsp;<wbr><br />
或者：<br />
YAHOO.util.Event.on("btn", "click", move);<br />
var move = function(e){...};<br />
&lt;button
id="btn"&gt;确认&lt;/button&gt;</p>
<p>12- 获取当前鼠标位置<br />
var move=function(e){<br />
&nbsp;<wbr>&nbsp;<wbr> YAHOO.util.Dom.setXY('foo',
YAHOO.util.Event.getXY(e));<br />
};</p>
<p>============YAHOO.lang工具===========<br />
包含了语言工具</p>
<p>============YAHOO.widget组件工具===========<br />
包含了很多小的工具，如月历，菜单，表格，对话框，进度条，文本编辑框，树型表，</p>
<p>Uploader等等。（类似于flash的组件）<br />
1- YAHOO.widget.Button<br />
2- YAHOO.widget.ButtonGroup<br />
3- YAHOO.widget.AutoComplete//自动填写表单，将数据或远程数据写入数组<br />
4- YAHOO.widget.Calendar//日历<br />
5- YAHOO.widget.Carousel//图片预览显示<br />
6- YAHOO.widget.ColorPicker<br />
7- YAHOO.widget.Container//包含Module, Overlay, Panel, Tooltip,
Dialog,</p>
<p>SimpleDialog)<br />
8- YAHOO.widget.DataTable//类似EXCEL的数据表格<br />
9- YAHOO.widget.ImageCropper//图像裁剪器<br />
10- YAHOO.widget.LayoutManager<br />
11- YAHOO.widget.Menu<br />
12- YAHOO.widget.Paginator//分页显示器<br />
13- YAHOO.widget.ProgressBar<br />
14- YAHOO.widget.Editor/SimpleEditor//可以做成网页编辑器，功能很多<br />
15- YAHOO.widget.Slider<br />
16- YAHOO.widget.Tab//标签页<br />
17- YAHOO.widget.TreeView<br />
18- YAHOO.widget.Uploader//文件上传组件，要和swf一起使用<br />
19- YAHOO.widget.Charts//图表，生成flash图表</p>
<p>============YAHOO.lang.JSON工具===========</p>
<p>============YAHOO.util.Element工具===========<br />
1- 新建元素<br />
var el = new YAHOO.util.Element('foo');//新建一个id为foo的元件<br />
el.setStyle("color", "#f00");//设置style<br />
el.on('click',
function(e){alert(e.target.getStyle('color'));});//设置事件侦听<br />
el.get('id');//获取id属性<br />
el.get('childNodes');//获取子节点数目<br />
el.get('firstChild');//获取第一个节点<br />
el.hasChildNodes();//检测是否有子节点<br />
el.removeChild(el.get('firstChild'));//删除第一个子节点<br />
el.appendChild(child);//增加节点<br />
el.getElementsByTageName(tag);//获取tagName为tag的所有元素<br />
el.insertBefore(element,before);//在元素before前插入element<br />
el.replaceChild(newNode,oldNode);//替换节点</p>
<p>============YAHOO.util.Dom工具===========<br />
//----元素访问----<br />
YAHOO.util.Dom.get(element);//==document.getElementById(element);<br />
YAHOO.util.Dom.getElementsBy(method,tagName,[rootNode]);//在指定子节点下，通过指</p>
<p>定的方式method找元素<br />
YAHOO.util.Dom.getElementsByClassName(className, tagName,
[rootNode]);//根据</p>
<p>class和id找元素<br />
YAHOO.util.Dom.inDocument(el);//判断元素是否在当前DOM中<br />
//----class样式访问和控制-----<br />
YAHOO.util.Dom.hasClass(element,
className);//判断element上是否使用了className的</p>
<p>class<br />
YAHOO.util.Dom.addClass(element,
className);//给指定element增加class<br />
YAHOO.util.Dom.removeClass(element,className);//删除element上名为className的</p>
<p>class<br />
YAHOO.util.Dom.replaceClass(element, oldClassName,
newClassName);//更新<br />
YAHOO.util.Dom.getStyle(element,
property);//获取element的style中指定的属性值<br />
YAHOO.util.Dom.setStyle(element, property, value);//设定属性值<br />
//----元素位置访问和控制----<br />
YAHOO.util.Dom.setX('element', value);<br />
YAHOO.util.Dom.setY<br />
YAHOO.util.Dom.setXY('element', point:Point);<br />
YAHOO.util.Dom.getX<br />
YAHOO.util.Dom.getXY('element');//返回Point对象<br />
YAHOO.util.Dom.getRegin;//获取Region对象{left,top,right,bottom}<br />
YAHOO.util.Dom.getClientWidth;//获取页面可视面积的高度和宽度<br />
YAHOO.util.Dom.getClientHeight;//<br />
YAHOO.util.Dom.getDocumentWidth;//获取文档的高度和宽度<br />
YAHOO.util.Dom.getDocumentHeight;//<br />
YAHOO.util.Dom.getViewportHeight;//获取页面可视区域的高度和宽度（不含滚动条）<br />
YAHOO.util.Dom.getViewportWidth;<br />
//----Regin对象----<br />
YAHOO.util.Region.contains(region);//判断是否包含了region区域<br />
YAHOO.util.Region.getArea;//计算面积<br />
YAHOO.util.Region.intersect(region);//计算相交区域<br />
YAHOO.util.Region.union(region);//计算两个区域并集<br />
//----Point对象{x,y}----<br />
可以使用数组一次性操作多个元素，如：<br />
YAHOO.util.Dom.setStyle(['el1','el2'],'opacity',0.5);</p>
<p>============YAHOO.util.Resize尺寸变化工具===========</p>
<p>Source from <a href="http://blog.sina.com.cn/s/blog_5d41b3800100gmap.html">http://blog.sina.com.cn/s/blog_5d41b3800100gmap.html</a><br />
</p>
<img src ="http://www.blogjava.net/alinglau36/aggbug/324793.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2010-06-29 16:55 <a href="http://www.blogjava.net/alinglau36/archive/2010/06/29/324793.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Event 鼠标位置属性</title><link>http://www.blogjava.net/alinglau36/archive/2010/06/25/324490.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Fri, 25 Jun 2010 10:02:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2010/06/25/324490.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/324490.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2010/06/25/324490.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/324490.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/324490.html</trackback:ping><description><![CDATA[<a title="Event 鼠标位置属性" href="http://221.199.150.103/jsj/html/page/book/js/e_clientX.htm">Event 鼠标位置属性</a><br />
<img src ="http://www.blogjava.net/alinglau36/aggbug/324490.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2010-06-25 18:02 <a href="http://www.blogjava.net/alinglau36/archive/2010/06/25/324490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>firefox event is not defined</title><link>http://www.blogjava.net/alinglau36/archive/2010/05/07/320258.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Fri, 07 May 2010 02:43:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2010/05/07/320258.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/320258.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2010/05/07/320258.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/320258.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/320258.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;showTip(e){<br />
event&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;window.event&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">||</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;e;<br />
</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;div3&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;document.getElementById(&nbsp;'div3&nbsp;');&nbsp;&nbsp;<br />
div3.style.display</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">block&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">;&nbsp;&nbsp;<br />
div3.style.left</span><span style="color: #000000;">=</span><span style="color: #000000;">event.clientX;&nbsp;&nbsp;<br />
div3.style.top</span><span style="color: #000000;">=</span><span style="color: #000000;">event.clientY;<br />
div3.style.position</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">absolute&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">;&nbsp;&nbsp;<br />
} <br />
</span></div>
<br />
<br />
在FIREFOX中,ENENT要显示的传给函数 <br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">onmousemove</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">showTip(event)&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp; <br />
</span></div>
<br />
<img src ="http://www.blogjava.net/alinglau36/aggbug/320258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2010-05-07 10:43 <a href="http://www.blogjava.net/alinglau36/archive/2010/05/07/320258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图片IMG与容器下边界有空隙的解决方法-Div+CSS教程</title><link>http://www.blogjava.net/alinglau36/archive/2010/03/18/315757.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Thu, 18 Mar 2010 03:33:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2010/03/18/315757.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/315757.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2010/03/18/315757.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/315757.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/315757.html</trackback:ping><description><![CDATA[第一，给图片img标签display:block。<br />
<div>
<div><img src="http://www.mb5u.com/uploads/divcss/quote.gif" style="margin: 0px 2px -3px 0px;" alt="div css xhtml xml Example Source Code" /> Example Source Code <span style="font-weight: 100; color: #f7f7f7;">[www.mb5u.com]</span></div>
<div>img{display:block}</div>
</div>
<br />
第二，定义容器里的字体大小为0。<br />
<div>
<div><img src="http://www.mb5u.com/uploads/divcss/quote.gif" style="margin: 0px 2px -3px 0px;" alt="div css xhtml xml Example Source Code" /> Example Source Code <span style="font-weight: 100; color: #f7f7f7;">[www.mb5u.com]</span></div>
<div>div { <br />
width:110px; <br />
border:1px solid #000000; <br />
font-size:0 <br />
}</div>
</div>
<br />
第三，定义图片img标签vertical-align:bottom，vertical-align:middle，vertical-align:top<br />
<div>
<div><img src="http://www.mb5u.com/uploads/divcss/quote.gif" style="margin: 0px 2px -3px 0px;" alt="div css xhtml xml Example Source Code" /> Example Source Code <span style="font-weight: 100; color: #f7f7f7;">[www.mb5u.com]</span></div>
<div>img{vertical-align:bottom}</div>
</div>
<br />
<br />
其他还有把图片下边距设为负值和改写HTML标签的排列。我觉得前三种就完全可以解决了。 <br />
<br />
<strong>造成图片在IE下与容器下边界有空隙的原因</strong><br />
<br />
在网上搜了一下，发现old9说的 <br />
<br />
图
片文字等inline元素默认是和父级元素的baseline对齐的，而baseline又和父级底边有一定距离（这个距离和
font-size，font-family 相关，不一定是 5px），所以设置
vertical-align:top/bottom/text-top/text-bottom
都可以避免这种情况出现。而且不光li，其他的block元素中包含img也会有这个现象。 <br />
<br />
至于这里的HTML属性align="center"（对于图片浏览器会处理成align="middle"），就相当于vertical-align:middle; 所以道理也是一样的，只要vertical-align不取baseline，这个空隙就消失了。<br />
<br />
<strong>相关评论</strong><br />
<br />
1.ie的显示有几种模式，在html文档的开始部分声明&lt;!DOCTYPE ....&gt; <br />
假如声明为strict模式，ie以w3c的方式显示文档，而w3c的标准里面&lt;img /&gt;默认是一个inline的标签，除非自己显式的声明为 block<br />
<br />
2.那个空隙是ie针对盒模型默认的line-height和font-size. 给img desplay:block;虽然能解决问题,但没从结构上来考虑.可谓治标不治本.
<img src ="http://www.blogjava.net/alinglau36/aggbug/315757.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2010-03-18 11:33 <a href="http://www.blogjava.net/alinglau36/archive/2010/03/18/315757.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IE6行高line-height失效问题方法详解</title><link>http://www.blogjava.net/alinglau36/archive/2010/02/21/313554.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Sun, 21 Feb 2010 09:16:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2010/02/21/313554.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/313554.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2010/02/21/313554.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/313554.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/313554.html</trackback:ping><description><![CDATA[<p>以前做面面IE6行高问题,总出.但为了省时间,都改用PADDING撑起来去解决了....就直接不用行高解决.今天有空又在网上查了查.总结一下解决方法!</p>
<p>因为li中加入图片，会导致line-height失效如:<br />
当在一个容器里文字和img、input、textarea、select、object等元素相连的时候，对这个容器设置的line-height数值会失效； 同时以上元素的行高可能&#215;2：</p>
<p>受
影响的浏览器： Microsoft Internet Explorer 5.01 / Windows&nbsp; Microsoft Internet
Explorer 5.5 / Windows&nbsp; Microsoft Internet Explorer 6&amp;nbsp;</p>
<p><span style="color: #ffff00;">解决方法：</span> <br />
对和文字相连接的img、input、textarea、select、object等元素加以属性</p>
<p>margin: (所属line-height-自身img,input,select,object高度)/2px 0;vertical-align:middle;<br />
<span style="color: #ffff00;">&nbsp;下面是源代码可直接复制下到本地演示:</span></p>
<p>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>"&gt;<br />
&lt;html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>"&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;<br />
&lt;link rel="stylesheet" type="text/css" href="css/base.css"&gt;<br />
&lt;style&gt;<br />
.hh li{ line-height:50px; }<br />
.hh li img{margin:20px 0;vertical-align:middle; } &lt;!--所属line-height-自身img,input,select,object高度)/2px --&gt;</p>
<p>&lt;/style&gt;<br />
&lt;title&gt;布丁足迹&lt;/title&gt;<br />
&lt;/head&gt;</p>
&lt;body&gt;<br />
&lt;ul class="hh"&gt;<br />
&nbsp;&nbsp; &lt;li id="qwe"&gt;&lt;a href="<a href="http://www.ddhbb.com/%22%3E1">http://www.ddhbb.com/"&gt;1</a>.布丁足迹&lt;/a&gt;&lt;img src="http://www.ddhbb.com/blog/image/logo/xml.gif" /&gt;&lt;/li&gt;<br />
&nbsp;&nbsp; &lt;li id="qwe"&gt;&lt;a href="<a href="http://www.ddhbb.com/%22%3E2">http://www.ddhbb.com/"&gt;2</a>.布丁足迹&lt;/a&gt;&lt;img src="http://www.ddhbb.com/blog/image/logo/xml.gif" /&gt;&lt;/li&gt;<br />
&nbsp;&nbsp; &lt;li id="qwe"&gt;&lt;a href="<a href="http://www.ddhbb.com/%22%3E3">http://www.ddhbb.com/"&gt;3</a>.布丁足迹&lt;/a&gt;&lt;img src="http://www.ddhbb.com/blog/image/logo/xml.gif" /&gt;&lt;/li&gt;<br />
&nbsp;&nbsp; &lt;li id="qwe"&gt;&lt;a href="<a href="http://www.ddhbb.com/%22%3E4">http://www.ddhbb.com/"&gt;4</a>.布丁足迹&lt;/a&gt;&lt;img src="http://www.ddhbb.com/blog/image/logo/xml.gif" /&gt;&lt;/li&gt;<br />
&nbsp;&nbsp; &lt;li&gt;&lt;a href="<a href="http://www.ddhbb.com/%22%3E5">http://www.ddhbb.com/"&gt;5</a>.布丁足迹&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&nbsp; &lt;li&gt;&lt;a href="<a href="http://www.ddhbb.com/%22%3E6">http://www.ddhbb.com/"&gt;6</a>.布丁足迹&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&nbsp; &lt;li&gt;&lt;a href="<a href="http://www.ddhbb.com/%22%3E7">http://www.ddhbb.com/"&gt;7</a>.布丁足迹&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&nbsp; &lt;li&gt;&lt;a href="<a href="http://www.ddhbb.com/%22%3E8">http://www.ddhbb.com/"&gt;8</a>.布丁足迹&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;
<img src ="http://www.blogjava.net/alinglau36/aggbug/313554.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2010-02-21 17:16 <a href="http://www.blogjava.net/alinglau36/archive/2010/02/21/313554.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSS hack:区分IE6，IE7，firefox</title><link>http://www.blogjava.net/alinglau36/archive/2010/02/10/312528.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Wed, 10 Feb 2010 08:14:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2010/02/10/312528.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/312528.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2010/02/10/312528.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/312528.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/312528.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt;"><span style="font-size: 12pt;">
<h1>CSS hack:区分IE6，IE7，firefox</h1>
<div id="news-content" class="news-content"><style type="text/css">
table.hack{background:#000;}
table.hack td{background:#fff;width:120px;text-align:center;}
</style>
<h3>区别不同浏览器，CSS hack写法：</h3>
<br />
<div>区别<span class="blue">IE6</span>与<span class="orange">FF</span>：</div>
<div> &nbsp; &nbsp; &nbsp; &nbsp;background:<span class="orange">orange</span>;<span class="red">*</span>background:<span class="blue">blue</span>;</div>
<br />
<div>区别<span class="blue">IE6</span>与<span class="green">IE7</span>：</div>
<div> &nbsp; &nbsp; &nbsp; &nbsp;background:<span class="green">green</span>&nbsp;<span class="red">!important</span>;background:<span class="blue">blue</span>;</div>
<br />
<div>区别<span class="green">IE7</span>与<span class="orange">FF</span>：</div>
<div> &nbsp; &nbsp; &nbsp; &nbsp;background:<span class="orange">orange</span>;&nbsp;<span class="red">*</span>background:<span class="green">green</span>;</div>
<br />
<div>区别<span class="orange">FF</span>，<span class="green">IE7</span>，<span class="blue">IE6</span>：</div>
<div> &nbsp; &nbsp; &nbsp; &nbsp;background:<span class="orange">orange</span>;<span class="red">*</span>background:<span class="green">green</span>&nbsp;<span class="red">!important</span>;*background:<span class="blue">blue</span>;</div>
<br />
<div>注：IE都能识别*;标准浏览器(如FF)不能识别*；</div>
<div>IE6能识别*，但不能识别 !important,</div>
<div>IE7能识别*，也能识别!important;</div>
<div>FF不能识别*，但能识别!important;</div>
<br />
<table class="hack" border="0" cellpadding="0" cellspacing="1">
    <tbody>
        <tr>
            <td><br />
            </td>
            <td>IE6</td>
            <td>IE7</td>
            <td>FF</td>
        </tr>
        <tr>
            <td>*</td>
            <td>&#8730;</td>
            <td>&#8730;</td>
            <td>&#215;</td>
        </tr>
        <tr>
            <td>!important</td>
            <td>&#215;</td>
            <td>&#8730;</td>
            <td>&#8730;</td>
        </tr>
    </tbody>
</table>
<br />
<table class="hack" border="0" cellpadding="0" cellspacing="1">
    <tbody>
        <tr>
            <td>_</td>
            <td><span style="font-size: 10pt;"><span style="font-size: 12pt;">&#8730;</span></span></td>
            <td><span style="font-size: 10pt;"><span style="font-size: 12pt;">&#215;</span></span></td>
            <td><span style="font-size: 10pt;"><span style="font-size: 12pt;">&#215;</span></span></td>
        </tr>
    </tbody>
</table>
<br />
<table class="hack" border="0" cellpadding="0" cellspacing="1">
    <tbody>
        <tr>
            <td>#<br />
            </td>
            <td><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;">&#215;</span></span></span></span></td>
            <td><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;">&#8730;</span></span></span></span></td>
            <td><span style="font-size: 10pt;"><span style="font-size: 12pt;">&#215;</span></span></td>
        </tr>
    </tbody>
</table>
<br />
<hr />
另外再补充一个，下划线"<span class="red">_</span>",<br />
IE6支持下划线，IE7和firefox均不支持下划线。<br />
<br />
于是大家还可以这样来区分<span class="blue">IE6</span>，<span class="green">IE7</span>，<span class="orange">firefox</span><br />
:
background:<span class="orange">orange</span>;<span class="red">*</span>background:<span class="green">green</span>;<span class="red">_</span>background:<span class="blue">blue</span>;
<br />
<br />
注：不管是什么方法，书写的顺序都是firefox的写在前面，IE7的写在中间，IE6的写在最后面。<br />
<br />
<br />
<br />
<hr />
相关：<br />
<ul>
    <li><a href="http://www.div-css.com/html/XHTML-CSS/hack/7164148320904.html">在windows XP下面同时安装IE6，IE7和firefox</a><br />
    （firefox的不同版本间可以共存，但是IE的不同版本之间不能共存，本文主要是解决将IE6和IE7安装到同一个XP系统里面去的问题）<br />
    </li>
    <li><a href="http://www.div-css.com/f/info/css-hack-list.gif">CSS的各种浏览器兼容一栏表</a></li>
</ul>
</div>
</span></span>
<img src ="http://www.blogjava.net/alinglau36/aggbug/312528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2010-02-10 16:14 <a href="http://www.blogjava.net/alinglau36/archive/2010/02/10/312528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web browser hacks, Css hacks - ie, firefox, chrome, safri, Opera</title><link>http://www.blogjava.net/alinglau36/archive/2010/02/10/312518.html</link><dc:creator>lau</dc:creator><author>lau</author><pubDate>Wed, 10 Feb 2010 06:44:00 GMT</pubDate><guid>http://www.blogjava.net/alinglau36/archive/2010/02/10/312518.html</guid><wfw:comment>http://www.blogjava.net/alinglau36/comments/312518.html</wfw:comment><comments>http://www.blogjava.net/alinglau36/archive/2010/02/10/312518.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/alinglau36/comments/commentRss/312518.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alinglau36/services/trackbacks/312518.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em;">CSS hacks take advantage of browser bugs
for hiding CssRules from specific web browsers. Listed below are the
hacks for major browsers like ie6, ie7, firefox2, <a href="http://htmlcsstutorials.blogspot.com/2009/06/how-firefox35-will-be-useful-for-web.html">firefox3</a>, Google chrome, <a href="http://htmlcsstutorials.blogspot.com/2009/06/apples-safari-4-downloaded-more-than-11.html">safari</a> and opera.</p>
<p style="text-indent: 2em;">Inline Hack for IE</p>
<p style="text-indent: 2em;">* (star) can be used as the inline hack for both ie6 and ie7.</p>
<p style="text-indent: 2em;">For Example:</p>
<p style="text-indent: 2em;">Syntax: .selector{*property:value;}</p>
<p style="text-indent: 2em;">.logo{*margin-left:10px;}</p>
<p style="text-indent: 2em;">IE6 browser inline Hack</p>
<p style="text-indent: 2em;">_ (underscore) can be using on<wbr>ly for ie6</p>
<p style="text-indent: 2em;">For Example:</p>
<p style="text-indent: 2em;">Syntax: .selector{_property:value;}</p>
<p style="text-indent: 2em;">.logo{_margin-left:10px;}</p>
<p style="text-indent: 2em;">Firefox inline style</p>
<p style="text-indent: 2em;">content:"\"/*" can be used for firefox on<wbr>ly where IE cannot recognize it.</p>
<p style="text-indent: 2em;">Internal Style</p>
<p style="text-indent: 2em;">Use * html for ie6 and *+html hack for ie7</p>
<p style="text-indent: 2em;">For Example:</p>
<p style="text-indent: 2em;">Synatax: * html .selector{property:value;} , * + html .selector{property:value;}</p>
<p style="text-indent: 2em;">* html .logo{margin-left:10px;} for ie6</p>
<p style="text-indent: 2em;">* + html .logo{margin-left:20px;} for ie7</p>
<p style="text-indent: 2em;">IE7 and Firefox browser Hack</p>
<p style="text-indent: 2em;">Use html&gt;body hack for ie7 and firefox.</p>
<p style="text-indent: 2em;">For Example:</p>
<p style="text-indent: 2em;">Syntax: html&gt;body .selector{property:value;}</p>
<p style="text-indent: 2em;">html&gt;body .logo{margin-left:10px} will take on<wbr>ly in ie7 and firefox</p>
<p style="text-indent: 2em;">Mordern browser Hack or Firefox Hack</p>
<p style="text-indent: 2em;">Use html&gt;/**/body {} hack which will support on<wbr>ly in both firefox2 and firefox3.</p>
<p style="text-indent: 2em;">For Example:</p>
<p style="text-indent: 2em;">Syntax: html&gt;/**/body .selector{property:value;}</p>
<p style="text-indent: 2em;">html&gt;/**/body .logo{margin-left:10px} will take on<wbr>ly in firefox.</p>
<p style="text-indent: 2em;">Browser hack for Opera versions 9 and below</p>
<p style="text-indent: 2em;">Use html:first-child {} for opera browser. Also you use</p>
<p style="text-indent: 2em;">Syntax: @media all and (min-width:0px) {head~body .selector {property:value;}}</p>
<p style="text-indent: 2em;">For Example:</p>
<p style="text-indent: 2em;">@media all and (min-width:0px) {head~body .logo {margin-left:10px;}} on<wbr>ly for opera</p>
<p style="text-indent: 2em;">Firefox3 browser hack</p>
<p style="text-indent: 2em;">Use html&gt;/**/body .selector, x:-moz-any-link, x:default {property:value;} for firfox3 on<wbr>ly.</p>
<p style="text-indent: 2em;">For Example:</p>
<p style="text-indent: 2em;">Syntax: html&gt;/**/body .pro_yl, x:-moz-any-link, x:default {background:red;}</p>
<p style="text-indent: 2em;">Google Chrome browser hack</p>
<p style="text-indent: 2em;">Use body:nth-of-type(1) .elementOrClassName{property:value;} on<wbr>ly for google chrome.</p>
<p style="text-indent: 2em;">For Example:</p>
<p style="text-indent: 2em;">body:nth-of-type(1) .logo{margin:20px;}</p>
<p style="text-indent: 2em;">Safari browser hack</p>
<p style="text-indent: 2em;">Use Syntax: body:first-of-type .elementOrClassName{property:value;}</p>
<p style="text-indent: 2em;">Fox Example:</p>
<p style="text-indent: 2em;">body:first-of-type .logo{margin-top:10px;} on<wbr>ly for safari.</p>
Hope this information will be useful for
you. Please use the browser hacks in a proper manner. For example, you
might know double margin bug in ie6. In such case you can use display
inline which will render correctly by all the browsers instead of you
using ie6 hack seperately
<img src ="http://www.blogjava.net/alinglau36/aggbug/312518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alinglau36/" target="_blank">lau</a> 2010-02-10 14:44 <a href="http://www.blogjava.net/alinglau36/archive/2010/02/10/312518.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>