﻿<?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>IT博客-A JavaScript Fancier-随笔分类-Js框架组件</title><link>http://www.cnitblog.com/yemoo/category/6420.html</link><description>伟大的javascript技术研究中...</description><language>zh-cn</language><lastBuildDate>Tue, 27 Sep 2011 11:40:41 GMT</lastBuildDate><pubDate>Tue, 27 Sep 2011 11:40:41 GMT</pubDate><ttl>60</ttl><item><title>实现Ext的grid单元格数据过长换行显示 </title><link>http://www.cnitblog.com/yemoo/archive/2008/07/10/46534.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Thu, 10 Jul 2008 02:19:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/07/10/46534.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/46534.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/07/10/46534.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/46534.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/46534.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>Grid的单元格对数据显示都是采用省略的办法来处理的，即内容长度超过单元格长度时自动隐藏超过的部分并使用省略号...来显示，这样虽然也很好，但有时我们可能还是希望它能完全的显示出来，即采用换行显示。<br><br>最简单的办法莫过于直接修改ext-all.css，但俺一般不像侵入ext的源文件，那就自己用别的方法实现吧。<br>方法其实也很简单，判断该grid是否需要换行显示。如果是则加上这段代码：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">grid.store.on('load',&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;gridEl.select(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">table[class=x-grid3-row-table]</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">).each(</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(x)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.addClass('x</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">grid3</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">cell</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">text</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">visible');<br>&nbsp;&nbsp;&nbsp;&nbsp;});<br>});</span></div>
<br><strong>CSS文件内容：<br></strong><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #800000">.x-grid3-cell-text-visible&nbsp;.x-grid3-cell-inner</span><span style="COLOR: #000000">{</span><span style="COLOR: #ff0000">overflow</span><span style="COLOR: #000000">:</span><span style="COLOR: #0000ff">visible</span><span style="COLOR: #000000">;</span><span style="COLOR: #ff0000">padding</span><span style="COLOR: #000000">:</span><span style="COLOR: #0000ff">3px&nbsp;3px&nbsp;3px&nbsp;5px</span><span style="COLOR: #000000">;</span><span style="COLOR: #ff0000">white-space</span><span style="COLOR: #000000">:</span><span style="COLOR: #0000ff">normal</span><span style="COLOR: #000000">;</span><span style="COLOR: #000000">}</span></div>
<br><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/46534.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-07-10 10:19 <a href="http://www.cnitblog.com/yemoo/archive/2008/07/10/46534.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ext实现页面表单Enter全键盘导航</title><link>http://www.cnitblog.com/yemoo/archive/2008/07/10/46533.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Thu, 10 Jul 2008 02:17:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/07/10/46533.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/46533.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/07/10/46533.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/46533.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/46533.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>在web软件中，很多时候我们希望提供用户一个键盘表单导航的功能，使用Enter代替tab实现表单的导航。<br>思路基本就是遍历页面的input字段，为每个表单项增加一个enter键的监听，如果出发了enter键则程序在触发tab键即可。<br><br>下面是在ext中实现的键盘导航的代码。
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br>*&nbsp;表单全键盘导航功能<br>*&nbsp;index:可选参数，用于设定页面加载完成后默认获取焦点的表单项，支持索引号和id/dom类型参数传入。<br></span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;keyNav&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(index){<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;run</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;all</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Ext.DomQuery.select('input[type</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">hidden]');&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">查找所有非隐藏的录入向（ext中select都是用input模拟的所以这里不用找select）</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.each(all,</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(o,i,all){&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">遍历并添加enter的监听</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.get(o).addKeyMap({<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key&nbsp;:&nbsp;</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fn&nbsp;:&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">{all[i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].focus()}</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(e){event.keyCode</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(all[i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">&amp;&amp;/</span><span style="COLOR: #000000">button</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">reset</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">submit</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">.test(all[i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].type))&nbsp;all[i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].click();&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">如果是按钮则触发click事件</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.focus();&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">使页面获取焦点，否则下面设定默认焦点的功能有时不灵验</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;el;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">typeof</span><span style="COLOR: #000000">&nbsp;eval(xFocus)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">'object'){&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">如果传入的是id或dom节点</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;el</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Ext.getDom(xFocus).tagName</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">'input'</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">Ext.getDom(xFocus):Ext.get(xFocus).first('input',</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">找到input框</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;el</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">all[xFocus</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">通过索引号找</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;el.focus();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(e){}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;Ext.isReady</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">run():Ext.onReady(run);&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">页面加载完成后添加表单导航</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">}</span></div>
<br><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/46533.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-07-10 10:17 <a href="http://www.cnitblog.com/yemoo/archive/2008/07/10/46533.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>扩展Ext.form.DateField实现定义日期面板默认展示日期</title><link>http://www.cnitblog.com/yemoo/archive/2008/07/10/46530.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Thu, 10 Jul 2008 02:04:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/07/10/46530.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/46530.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/07/10/46530.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/46530.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/46530.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>用了这么久的EXT，感觉Ext的功能是很全很强了，但任何东西都不能涵盖所有的需求，好在Ext为我们提供了书写扩展的接口，通过做一些扩展便可轻松是Ext组件满足我们的特殊需求。<br><br>Ext的date组件就不能满足我们这么一个需求：我们希望当日期框内容为空时，我们点击日期输入框后面的图标显示日期选择面板时，展示的默认日期不是当前日期的年月，而是我们自己设定的一个默认日期。<a name=entrymore></a><br><br>查看Ext.form.DateField的属性列表没有看到提供这么一个参数可以让我们设置默认展示日期。<br><br>因此这就需要我们自己去扩展下了。查看了Ext.form.DateField的onTriggerClick方法，发现面板的默认日期是在这里设定的。<br>Ext设定的是this.getValue() || new Date()，也就是先取输入框的值，如果不存在则使用当前日期。<br><br>ok，来扩展吧，我们自己再setValue一下就可以了。<br><br>代码如下：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;Ext.form.myDateField</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Ext.extend(Ext.form.DateField,{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;onTriggerClick:</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.myDateField.superclass.onTriggerClick.call(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">);&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">先执行一下父类的函数内容，否则下面的this.menu找不到</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.menu.picker.setValue(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.getValue()</span><span style="COLOR: #000000">||</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.defaultDate);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">调用menuPicker的setValue方法设定一下值</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.reg('myDateField',Ext.form.myDateField);&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">注册一个类型，便于使用</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">使用我们自己扩展myDateField，直接new一个对象</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;date</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Ext.form.myDateField({<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;renderTo:document.body,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultDate:</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Date(</span><span style="COLOR: #000000">2008</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">这个defaultDate就是我们扩展的一个属性</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">通过xtype引用</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;panel</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Ext.Panel({<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width:</span><span style="COLOR: #000000">200</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height:</span><span style="COLOR: #000000">200</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items:{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xtype:'myDateField',&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">通过我们注册的xtype来引用</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultDate:</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Date(</span><span style="COLOR: #000000">2008</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;renderTo:document.body<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br><br></span></div>
<br>看看代码注释大家一定都能明白，几行代码就搞定了。<br>再此感叹！Ext真强！<p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/46530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-07-10 10:04 <a href="http://www.cnitblog.com/yemoo/archive/2008/07/10/46530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ext中判断浏览器及系统平台的代码摘录</title><link>http://www.cnitblog.com/yemoo/archive/2008/06/23/45939.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Mon, 23 Jun 2008 05:39:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/06/23/45939.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/45939.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/06/23/45939.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/45939.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/45939.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>判断浏览器类型及操作系统平台不算一个什么难题，但要做到短小精悍，那还是有些难度，看了Ext的代码觉得其代码的优秀之一就是代码的短小精悍，以尽可能精简的代码去实现一些操作。<br>这里摘录了Ext.js中关于浏览器类型及操作系统平台的代码，这段代码包含了很全面的关于浏览器和操作系统类型判断，而且代码也非常的精简，应该从中好好学习下：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;ua&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;navigator.userAgent.toLowerCase();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;isStrict&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;document.compatMode&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">CSS1Compat</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isOpera&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ua.indexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">opera</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isSafari&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">webkit</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">khtml</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">).test(ua),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isIE&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">isOpera&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;ua.indexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">msie</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isIE7&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">isOpera&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;ua.indexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">msie&nbsp;7</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isGecko&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">isSafari&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;ua.indexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">gecko</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isBorderBox&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;isIE&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">isStrict,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isWindows&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(ua.indexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">windows</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;ua.indexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">win32</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isMac&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(ua.indexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">macintosh</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;ua.indexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">mac&nbsp;os&nbsp;x</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isLinux&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(ua.indexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">linux</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isSecure&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;window.location.href.toLowerCase().indexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">https</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">===</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span></div><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/45939.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-06-23 13:39 <a href="http://www.cnitblog.com/yemoo/archive/2008/06/23/45939.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>判断html元素是否真正可见的巧妙方法</title><link>http://www.cnitblog.com/yemoo/archive/2008/06/23/45938.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Mon, 23 Jun 2008 05:37:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/06/23/45938.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/45938.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/06/23/45938.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/45938.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/45938.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>在Ext中，几乎所有的组件都有isVisible()方法和hidden属性，都是用来判断是否组件元素是否可见，这在ext内部管理来说没有问题，但有时我们把组件放在了自己的html结构内，如果我们把自己编写的html元素通过css定义为隐藏后，使用ext的isVisible方法和hidden属性就不能正确获取到组件是否可见了，因为ext也仅仅是根据判断元素的visibility和display属性来确定元素是否可见的。因此如果本身没有设定隐藏而外层设定了隐藏，则不能通过这两个css属性来判断元素是否可见了。<br><br>在实际的应用中，有时还必须需要知道元素的真实的可见性，但此时通过ext的内部方法就不管用了，思考测试许久突然想起了一个元素，当元素不可见时读取其实际高度或宽度则可能返回0，测试发现果然如此。<br>通过读取其offsetXXX或clientXXX来判断，或者使用Ext的getSize或getComputedWidth/Height方法获取，如果元素在页面不可见则会返回0，根据这点我们就可以获取到元素的真正可见性了。<br><br>如我们需要在元素可见时执行一些操作，则可以如下组织代码：
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;timer</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">setInterval(</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(){<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(el.getComputedHeight()</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">el.getComputedWidth()</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">do&nbsp;something</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearInterval(timer);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>},</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span></div><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/45938.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-06-23 13:37 <a href="http://www.cnitblog.com/yemoo/archive/2008/06/23/45938.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决Ext2.0中ComboBox执行Filter第一次无效的问题</title><link>http://www.cnitblog.com/yemoo/archive/2008/06/02/44724.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Mon, 02 Jun 2008 01:01:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/06/02/44724.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/44724.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/06/02/44724.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/44724.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/44724.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>更新Ext ComboBox的列表项，直接通过更新其Store即可，而且可以通过Filter对store数据进行过滤只显示符合特定条件的列表项。<br>今天项目正好需要这个了，页面4个ComboBox的列表随着页面操作需要不断更新，我采用的方法也正是filter，本来以为一个很简单的问题，但整整郁闷了我两个多小时，开始发现filter之后虽然store的内容已经发生了变化，但ComboBox的列表项却仍然是原来的，偶以为是自己程序那个地方出错了，结果查了半天也没有找到什么错误。<br><br>后来测试突然发现只是第一次点击显示ComboBox的时候没有显示过滤后的内容，而从第二次开始每次都能获显示flter后的内容。<br>这个问题真是怪了，我猜想应该是EXT本身的问题，开始只是想触发一个expand事件，但发现问题并不那么简单，花费半个小时也没有想到好的办法，只好到Ext Forum上求助了，先search了一下ComboBox Filter，发现了已经有很多人遇到了与我同样的问题，看来真的是Ext的问题了，看了几篇帖子，找到了一个比较有效的解决办法：filter之后删除原store的数据快照。<br>如：<br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">store.filter(<img src="http://www.cnitblog.com/Images/dot.gif">);<br></span><span style="COLOR: #0000ff">delete</span><span style="COLOR: #000000">&nbsp;store.snapshot;<br></span></div>
马上试了一下还真可以，兴奋了半天之后却又遇到了另一个问题，即store.clearFilter不能还原到原来的数据了。思考了一下应该是store.snapshot保存了最原始的数据，这样一delete肯定就找不到原始数据了，因此也就不能恢复了。这可够郁闷，删也不是不删也不是！<br>继续思考，如果我把它的snapshot保存起来，需要用clearFilter恢复数据时再把它的snapshot给还原了岂不就解决了吗？经过测试，果真成功！<br><br>为了使用方便、降低重复代码量，偶对comboBox进行了简单的封装，除了解决上面filter的问题，还实现了通过document.forms[0].combox.value获取和设定comboBox的功能，通过选择ComboBox的列表值会同步更新form表单中combox的值。<br><br><strong>使用方法示例：</strong><br><br><span style="COLOR: #0000ff"><u>html:</u></span><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">form&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="testFrm"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><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;name</span><span style="COLOR: #0000ff">="userlList"</span><span style="COLOR: #ff0000">&nbsp;&nbsp;id</span><span style="COLOR: #0000ff">="combox"</span><span style="COLOR: #ff0000">&nbsp;width</span><span style="COLOR: #0000ff">="150"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">form</span><span style="COLOR: #0000ff">&gt;</span></div>
<br><span style="COLOR: #0000ff"><u>JS:<br></u>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;data</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">[[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,'用户一'],[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,'用户二']];<br></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;combox</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;makeCombo('combox',data,'用户列表');<br><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">获取userList的值</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;curValue</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">document.forms['testForm'].userList.value;<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设定userList当前值</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">document.forms['testForm'].userList.value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;</span></div>
</span><br><strong>封装代码：<br></strong>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br>*&nbsp;根据数据生成combox到指定的位置<br>*&nbsp;id:容器,data:数据,text:文本&nbsp;width:ComboBox的宽度，默认为所绑定元素的宽度<br></span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;makeCombo(id,data,text,width){<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;container</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Ext.get(id);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">container)</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;realInput;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">保存值的input</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Ext.form.ComboBox({<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;store:&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Ext.data.SimpleStore({<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">解决filter第一次无效的bug,保存原数据快照到另一个变量</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listeners:{datachanged:</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(){</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.mySnap)</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.mySnap</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.snapshot;</span><span style="COLOR: #0000ff">delete</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.snapshot}},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fields:&nbsp;['value',&nbsp;'text'],<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data:data</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">[]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;editable:</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;valueField:'value',<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayField:&nbsp;'text',<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;typeAhead:&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lazyInit:&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width:width</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">container.getComputedWidth(),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode:&nbsp;'local',<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listeners:{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;render:</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(_this){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;realInput</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Ext.DomHelper.insertAfter(container,{tag:&nbsp;'input',type:'hidden',name:_this.getName(),value:_this.getValue()})&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;realInput.onpropertychange</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(){_this.setValue(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.value)};&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">真实表单联动模拟表单</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;container.dom.removeAttribute('name');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_this.clearFilter</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(){&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">扩展一个方法还原store</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_this.store.snapshot</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">_this.store.mySnap;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_this.store.clearFilter();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select:</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(combo,rec,index){&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">模拟表单联动真实表单</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;realInput.value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">rec.get('value');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;triggerAction:&nbsp;'all',<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;emptyText:&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">请选择</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">(text</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">'<img src="http://www.cnitblog.com/Images/dot.gif">'),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selectOnFocus:&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;applyTo:&nbsp;container<br>&nbsp;&nbsp;&nbsp;&nbsp;});<br>}<br></span></div><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/44724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-06-02 09:01 <a href="http://www.cnitblog.com/yemoo/archive/2008/06/02/44724.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Prototype ScrollTo Plugin--页面滚动插件</title><link>http://www.cnitblog.com/yemoo/archive/2008/06/02/44722.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Mon, 02 Jun 2008 00:55:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/06/02/44722.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/44722.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/06/02/44722.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/44722.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/44722.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>很多时候特别在页面比较长的时候我们都会加上一个如"go Top!"，"go Bottom"等之类的按钮或连接，用于快捷的引导用户到页面指定的位置。我们一般都使用html的瞄标记来实现，但这样给用户的体验不是很好，特别页面较长时页面瞬间滚动到页面的底部或顶部可能会使用户迷失，Prototype ScrollTo Plugin这个组件正好帮我们解决这个问题。<br><br>Prototype ScrollTo Plugin采用一种平滑的滚动方式，给用户一种友好的交互体验。很有实用的价值的一个组件。<br><br><strong>示例地址：</strong><a href="http://tobielangel.com/examples/auto-scrolling-page-navigation" target=_blank><u><font color=#0000ff>http://tobielangel.com/examples/auto-scrolling-page-navigation</font></u></a><p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/44722.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-06-02 08:55 <a href="http://www.cnitblog.com/yemoo/archive/2008/06/02/44722.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ExtTLD--JSP tag Lib方式使用Ext </title><link>http://www.cnitblog.com/yemoo/archive/2008/06/02/44721.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Mon, 02 Jun 2008 00:54:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/06/02/44721.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/44721.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/06/02/44721.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/44721.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/44721.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>最近公司也一直在考虑如何封装ext便于书写页面，毕竟完全写js代码有很多不变，代码多了不好维护，而且对于初级页面制作者来说也有很大的难度。我们基本是考虑使用html标签应用方式，通过id绑定的方式生成组件，近日闲逛ajaxian发现第一篇文章标题是：ExtTLD: Create Ext components with XML，顿时一惊，打开光放网站大概看了一下，感觉思路还不错。<br><br>ExtTLD是一个应用于基于Java语言项目的Ext标记。把写js生成页面的方式变换为写jsp tag的方式来引用，使用难度上降低了不少，但项目似乎是刚刚开始，还有很多不成熟的地方，不过随着不断的完善，应该还是有点前途的，关注一下！<br><br>有兴趣的朋友也可以看看：<a href="http://www.exttld.com/" target=_blank><u><font color=#0000ff>http://www.exttld.com/</font></u></a><p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/44721.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-06-02 08:54 <a href="http://www.cnitblog.com/yemoo/archive/2008/06/02/44721.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现Ext Grid宽高自适应</title><link>http://www.cnitblog.com/yemoo/archive/2008/05/30/44593.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Fri, 30 May 2008 03:09:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/05/30/44593.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/44593.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/05/30/44593.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/44593.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/44593.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>不知是Ext的Bug还是其他原因，当初始化grid并将宽度设为100%时，其宽度会变成10000px宽，高度100%则grid高度根据grid内容自适应，而不是根据其所在容器自适应，一直没有很好的办法，只能使用绝对宽高，但有时这是很不方便的。<br>对此问题一直耿耿于怀，后来终于想出了一个办法，还真的可行，但就是感觉有点蹩脚。<br>一般我们都通过render到指定id的层上来展现grid，虽然不能让grid宽高自适应，但层还是可以的。<br>如我们这里要用到的层是&lt;div id="orgGrid"&gt;&lt;/div&gt;。我们可以在这个层上设置高宽。<br>如&lt;div id="orgGrid" style="width:100%;height:250px"&gt;&lt;/div&gt;。<br>则在初始化grid的时候让其宽高与orgGrid宽高相同即可，并在页面resize时重新计算器宽度即可（一般高度固定还是比较好）。<br><br><strong>js代码如下：<br></strong>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000">//</span><span style="COLOR: #008000">..前面若干行代码省略，如ds/colmodel等</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;orgGrid</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Ext.get(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">orgGrid</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">展示grid的容器</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;grid&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Ext.grid.GridPanel({<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">人员管理</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds:&nbsp;ds,&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">数据源</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cm:&nbsp;colModel,&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">列模式</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sm:selMode,&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">选择模式</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width:orgGrid.getComputedWidth(),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height:orgGrid.getComputedHeight(),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autoExpandColumn:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">memory</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">自动扩展宽度的列</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autoScroll:</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loadMask:{msg:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">数据加载中，请稍等<img src="http://www.cnitblog.com/Images/dot.gif"></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds.load();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;grid.render(orgGrid);&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">把grid铺到id为grid的容器中</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>window.onresize</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;grid.setWidth(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;grid.setWidth(orgGrid.getComputedWidth());<br>};<br><br></span></div>
这样不论页面宽度怎么变化grid都会自适应页面容器了。<br><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><<img src ="http://www.cnitblog.com/yemoo/aggbug/44593.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-05-30 11:09 <a href="http://www.cnitblog.com/yemoo/archive/2008/05/30/44593.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ext2:在iframe内页关闭外部展开的menu菜单</title><link>http://www.cnitblog.com/yemoo/archive/2008/05/30/44591.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Fri, 30 May 2008 03:07:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/05/30/44591.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/44591.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/05/30/44591.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/44591.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/44591.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>由于项目需要因此使用ext2构建页面时，我们的工作区Tab页面都采用iframe来实现，但因为在页面主页面中存在下拉菜单(menu)，因此就出现了如下一个问题：当下拉菜单被展开显示后，在iframe页面中点击鼠标不能关闭外部的menu，这个问题很是让人郁闷。<br>后来想了一下还是找到了解决办法：<br><br>1、首先要保证menu对象保存到了页面的一个全局变量中，以使内页可以通过top访问到menu对象。<br>如menu=new Ext.menu.Menu({});<br>2、在内页中加上如下一行js<br>Ext.get(document).on("click",function(){try{top.menu.hide()}catch(e){}});&nbsp;&nbsp; //隐藏头部菜单<br><br>这样当点击iframe页面时，如果top中有menu，则会将其隐藏。一点小技巧，希望对同样遇到此问题的朋友有帮助。<p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><<img src ="http://www.cnitblog.com/yemoo/aggbug/44591.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-05-30 11:07 <a href="http://www.cnitblog.com/yemoo/archive/2008/05/30/44591.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解析Xml构建Ext树形菜单</title><link>http://www.cnitblog.com/yemoo/archive/2008/05/30/44590.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Fri, 30 May 2008 03:01:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/05/30/44590.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/44590.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/05/30/44590.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/44590.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/44590.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>xml在j2EE中应用非常广泛，主要作为一些配置存在。在我们的项目中由于需要方便的对菜单进行管理，因此也将菜单定义成了xml。<br>然后使用ext去解析这个xml进行菜单展示。<br><br><strong>菜单格式大致如下：<br></strong>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">&lt;?</span><span style="COLOR: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span>?&gt;<br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">根节点&nbsp;expanded</span><span style="COLOR: #0000ff">="true"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">节点一&nbsp;expanded</span><span style="COLOR: #0000ff">="true"</span><span style="COLOR: #ff0000">&nbsp;id</span><span style="COLOR: #0000ff">="tree-test1"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">子节点一&nbsp;href</span><span style="COLOR: #0000ff">="page1.html"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">子节点二&nbsp;href</span><span style="COLOR: #0000ff">="page2.html"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">子节点三&nbsp;href</span><span style="COLOR: #0000ff">="page3.html"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">子节点四&nbsp;href</span><span style="COLOR: #0000ff">="page5.html"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">子节点五&nbsp;href</span><span style="COLOR: #0000ff">="page4.html"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">节点一</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">节点二&nbsp;expanded</span><span style="COLOR: #0000ff">="true"</span><span style="COLOR: #ff0000">&nbsp;id</span><span style="COLOR: #0000ff">="tree-test1"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">子节点一&nbsp;href</span><span style="COLOR: #0000ff">="page1.html"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">子节点二&nbsp;href</span><span style="COLOR: #0000ff">="page2.html"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">子节点三&nbsp;href</span><span style="COLOR: #0000ff">="page3.html"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">子节点四&nbsp;href</span><span style="COLOR: #0000ff">="page5.html"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">子节点五&nbsp;href</span><span style="COLOR: #0000ff">="page4.html"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">节点二</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">根节点</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><br></span></div>
<br>基本是按照树形结构写的菜单，如果有多级菜单，则按照xml的嵌套规则进行嵌套即可。<br>1、必须有一个根节点<br>2、对某个节点的属性可以通过xml属性定义。如id="xx"，href='xx'。<br>3、如果没有子节点，可以对单个标记写。如&lt;节点 /&gt;<br><br>剩下的就是解析函数，这里参考ext官方论坛的一个帖子，偶自己改了一下以适应定义的xml：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000">//</span><span style="COLOR: #008000">解析xml字符串</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;loadXML(xmlStr){&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">xmlStr)</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">空串返回null</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(window.ActiveXObject){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;xmlDom</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ActiveXObject(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Microsoft.XMLDOM</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(document.implementation</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">document.implementation.createDocument){</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;xmlDom</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">document.implementation.createDocument(</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">doc</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;xmlDom.async&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlDom.loadXML(xmlStr);<br>&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(e){&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">非IE浏览器</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;oParser</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DOMParser();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlDom</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">oParser.parseFromString(xmlStr,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">text/xml</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;xmlDom;<br>}<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">下面两个函数用于解析xml为树结构输出</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;createXmlTree(el,xmlsrc,callback)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;tree</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Ext.tree.TreePanel({el:el,animate:</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">,border:</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">,autoHeight:</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">});<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;xmlDom</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">loadXML(xmlsrc);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">作为xml串解析</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree.setRootNode(treeNodeFromXml(xmlDom.documentElement</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">xmlDom));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback.call(tree);<br>&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(e){&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">作为url解析</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Ext.data.HttpProxy({url:xmlsrc</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">etc/menu.xml</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">});&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">默认为etc/menu.xml</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.on(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">loadexception</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(o,response,e){tree.setRootNode(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Ext.tree.TreeNode(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">根节点</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">))});<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.load(</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">,{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read:&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(response)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;doc</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">response.responseXML;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree.setRootNode(treeNodeFromXml(doc.documentElement</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">doc));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},callback,tree);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;tree;<br>}<br></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;treeNodeFromXml(XmlEl)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;t</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">((XmlEl.nodeType</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">XmlEl.nodeValue:XmlEl.tagName);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(t.replace(</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">\s</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">g,'').length</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">){</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;result&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;{text&nbsp;:&nbsp;t};<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(XmlEl.nodeType</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.each(XmlEl.attributes,</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(a){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(a.nodeName</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">href</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">XmlEl.hasChildNodes())&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">目录不添加链接属性</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result[a.nodeName]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">a.nodeValue;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Ext.tree.TreeNode(result);&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">根据属性设置构建树</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.each(XmlEl.childNodes,</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(el){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">((el.nodeType</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">(el.nodeType&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">)){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;c</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">treeNodeFromXml(el);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(c){result.appendChild(c);}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;result;<br>}<br><br></span></div>
<br>以上方法支持传入xml的url或直接传入xml串。<br><br><strong>调用示例：</strong> <br>//第一个参数：要显示树形菜单的容器id或dom对象，<br>//第二个参数：xml源：可以为url或xml字符串<br>//第三个参数：解析树成功后执行的回调函数<br>var menuTree = new createXmlTree('menuTree',"etc/menu.xml",function(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.render();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.getRootNode().expand();<br>&nbsp;&nbsp;&nbsp;&nbsp;});<p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/44590.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-05-30 11:01 <a href="http://www.cnitblog.com/yemoo/archive/2008/05/30/44590.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EXT Ajax访问url返回405错误的解决办法</title><link>http://www.cnitblog.com/yemoo/archive/2008/05/30/44587.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Fri, 30 May 2008 01:46:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/05/30/44587.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/44587.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/05/30/44587.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/44587.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/44587.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>昨日用了Ext Tree组件做一个东西，需要用到ajax对节点逐级加载，开始数据用的静态数据data.txt，一切程序都测好了然后放到系统中测试，将data.txt换成了servlet，发现什么都不显示，单独访问servlet也能正常返回json数据，猜想应该是出现ajax调用错误了，检查了传递的参数与服务端需要的参数名也丝毫没有问题，Loader的代码大致是这样的：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">loader:&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Tree.TreeLoader({<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataUrl:'data.servlet',<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;baseAttrs:{leaf:</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listeners:{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;beforeload:</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(treeLoader,&nbsp;node){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.baseParams</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">传递两个参数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nodeid:node.attributes.nodeid,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orgid:node.attributes.orgid<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node.on(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">append</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(tree,node,cnode){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;icon</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">cnode.attributes.type.toLowerCase();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(icon</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">p</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">){cnode.attributes.iconCls</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'c3'}&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">人员</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(icon</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">m</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">){cnode.attributes.iconCls</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'c2'}&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">机构</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(icon</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">){cnode.attributes.iconCls</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'c2'}&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">部门</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})<br></span></div>
<br>接着为loader加了一个异常监听：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">loadexception:</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(tree,node,res){<br>&nbsp;&nbsp;&nbsp;&nbsp;alert(res.status);<br>}<br><br></span></div>
<br>运行弹出&#8220;405&#8221;，查了一下这个状态码的意义，原来是资源禁止访问，在java里也就是参数传递方式不对，Servlet用GET接受数据，但请求用POST传递数据，因此就会出现这个问题，知道原因就好办了，在treeLoader里加一个requestMethod:'GET'就ok了。<br>=======================================<br><strong>还有一个问题要注意：</strong><br>tree ajax第一次请求数据时传递的的参数的值在rootNode里面设定，如<br>var root = new Tree.AsyncTreeNode({text: '根节点',nodeid:'',orgid:''});<br>里面的nodeid和orgid就是要发送到服务端的参数，注意与baseParams照应即可，这个值最好在rootNode里应该设定一下，否则服务端接收到的nodeid和orgid值就是undefined，如果服务端用null和''来检测空参数值就可能出现问题。如果初始访问不需要参数，则将参数都设为空，否则设定为特定的值即可。 <br><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/44587.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-05-30 09:46 <a href="http://www.cnitblog.com/yemoo/archive/2008/05/30/44587.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mapper--图片热点区域高亮组件</title><link>http://www.cnitblog.com/yemoo/archive/2008/04/03/41892.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Thu, 03 Apr 2008 04:24:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/04/03/41892.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/41892.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/04/03/41892.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/41892.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/41892.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>很有意思的一个东西，我们都用过图片热点对多个切片做链接，也用过链接的hover高亮效果，但却没有办法实现图片热点的高亮效果（即鼠标悬停在某个热点区域时该区域高亮显示）。<br><br>Mapper就是这样的小组件，利用js绘图和css定义实现了这样一个很有用处的功能。<br><br><strong>效果如下：</strong><br><a href="http://www.netzgesta.de/mapper/images/mapper.jpg" target=_blank><img class=insertimage title=点击在新窗口中浏览此图片 alt=点击在新窗口中浏览此图片 src="http://www.netzgesta.de/mapper/images/mapper.jpg" border=0></a><br><br><strong>官方站点及演示：</strong><a href="http://www.netzgesta.de/mapper/" target=_blank><u><font color=#0000ff>http://www.netzgesta.de/mapper/</font></u></a><br><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/41892.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-04-03 12:24 <a href="http://www.cnitblog.com/yemoo/archive/2008/04/03/41892.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jash: JavaScript Shell </title><link>http://www.cnitblog.com/yemoo/archive/2008/01/22/39198.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Tue, 22 Jan 2008 12:28:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/01/22/39198.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/39198.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/01/22/39198.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/39198.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/39198.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>Jash: A Cross-Browser Javascript Command-Line Debugging Tool<br><br>Jash是一个基于DHTML开发的命令行JavaScript调试工具，用于调试当前打开的页面。通过该调试工具，你可以快速的进行脚本调试，查看dom、当前页面对象，函数、变量，跟踪执行堆栈，执行任意脚本及为页面定义css等，可运行于IE6+ 、FF1.5+、Safari 3 +下。<br>程序仅仅是一个大小约为30kb的js文件，无需安装，只需将js放入书签，随时都可以通过点击该书签调出，或者在自己程序中直接嵌入这个js文件即可。<br><br><strong>详细请查看官方介绍：</strong><a href="http://www.billyreisinger.com/jash/" target=_blank><u><font color=#0000ff>http://www.billyreisinger.com/jash/</font></u></a><p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/39198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-01-22 20:28 <a href="http://www.cnitblog.com/yemoo/archive/2008/01/22/39198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ext2类继承关系简要结构图</title><link>http://www.cnitblog.com/yemoo/archive/2008/01/22/39197.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Tue, 22 Jan 2008 12:27:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/01/22/39197.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/39197.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/01/22/39197.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/39197.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/39197.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br><br>yemoo整理于2007年12月11日，对其中的类继承关系做了简单的总结，不完善之处希望大家提出。<br><strong><br>转载请注明来源：</strong><a title=http://www.ajaxbbs.net href="http://www.ajaxbbs.net/" target=_blank><u><font color=#0000ff>http://www.ajaxbbs.net</font></u></a><br><br>由于内容是由word文档导出生成，因此请访问<a href="http://www.ajaxbbs.net/blog/attachment/other/Ext-Class-Inhert-Chart.htm" target=_blank><u><font color=#0000ff>http://www.ajaxbbs.net/blog/attachment/other/Ext-Class-Inhert-Chart.htm</font></u></a>。<p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><<img src ="http://www.cnitblog.com/yemoo/aggbug/39197.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-01-22 20:27 <a href="http://www.cnitblog.com/yemoo/archive/2008/01/22/39197.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Google Chart</title><link>http://www.cnitblog.com/yemoo/archive/2008/01/02/38389.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Wed, 02 Jan 2008 07:38:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/01/02/38389.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/38389.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/01/02/38389.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/38389.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/38389.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>前面介绍了Jquery的一个Chart插件Slot，这里在推荐一个Google的Chart组件。<br><br>Google Chart使用方式比较特别，不是调用js，而是直接在url传入参数即生成对应的Chart，只要掌握了这些参数就可以生成各种需要的chart图表了。<br>如<br>http://chart.apis.google.com/chart?cht=p3&amp;chd=s:hW&amp;chs=250x100&amp;chl=Hello|World<br>将显示为<br><a href="http://chart.apis.google.com/chart?cht=p3&amp;chd=s:hW&amp;chs=250x100&amp;chl=Hello|World" target=_blank><img class=insertimage title=点击在新窗口中浏览此图片 alt=点击在新窗口中浏览此图片 src="http://chart.apis.google.com/chart?cht=p3&amp;chd=s:hW&amp;chs=250x100&amp;chl=Hello|World" border=0></a><br><br>可以直接作为图片应用，如：
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">img&nbsp;</span><span style="COLOR: #ff0000">src</span><span style="COLOR: #0000ff">="http://chart.apis.google.com/chart?<br>chs=200x125<br>&amp;amp;chd=s:helloWorld<br>&amp;amp;cht=lc<br>&amp;amp;chxt=x,y<br>&amp;amp;chxl=0:|Mar|Apr|May|June|July|1:||50+Kb"</span><span style="COLOR: #ff0000">&nbsp;<br>alt</span><span style="COLOR: #0000ff">="Sample&nbsp;chart"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span></div>
<br>有兴趣的可以看看，项目的地址为：<a href="http://code.google.com/apis/chart/" target=_blank><u><font color=#0000ff>http://code.google.com/apis/chart/</font></u></a><p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script> <img src ="http://www.cnitblog.com/yemoo/aggbug/38389.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-01-02 15:38 <a href="http://www.cnitblog.com/yemoo/archive/2008/01/02/38389.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Plot-Jquery图表绘制插件</title><link>http://www.cnitblog.com/yemoo/archive/2008/01/02/38388.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Wed, 02 Jan 2008 07:36:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/01/02/38388.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/38388.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/01/02/38388.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/38388.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/38388.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>&nbsp;&nbsp;&nbsp;&nbsp; 受Plotr和PlotKit的启发，Ole Laursen基于jquery开发了一个图表绘制(WEB Chart)插件并命名为flot。名字有点古怪，但当其V0.1版本发布时就吸引了不少人的关注。<br><br><strong>项目地址：</strong><a href="http://code.google.com/p/flot/" target=_blank><u><font color=#0000ff>http://code.google.com/p/flot/</font></u></a><br><strong>Demo演示：</strong><a href="http://people.iola.dk/olau/flot/examples/" target=_blank><u><font color=#0000ff>http://people.iola.dk/olau/flot/examples/</font></u></a><br><br>以下为Slot的一些示例截图：<br><a href="http://ajaxian.com/wp-content/images/rb_flot.gif" target=_blank><img class=insertimage title=点击在新窗口中浏览此图片 alt=点击在新窗口中浏览此图片 src="http://ajaxian.com/wp-content/images/rb_flot.gif" border=0></a><a href="http://ajaxian.com/wp-content/images/rb_flot1.gif" target=_blank><img class=insertimage title=点击在新窗口中浏览此图片 alt=点击在新窗口中浏览此图片 src="http://ajaxian.com/wp-content/images/rb_flot1.gif" border=0></a><a href="http://ajaxian.com/wp-content/images/rb_flot.gif" target=_blank><br></a><a href="http://ajaxian.com/wp-content/images/rb_flot2.gif" target=_blank><img class=insertimage title=点击在新窗口中浏览此图片 alt=点击在新窗口中浏览此图片 src="http://ajaxian.com/wp-content/images/rb_flot2.gif" border=0></a><a href="http://ajaxian.com/wp-content/images/rb_flot3.gif" target=_blank><img class=insertimage title=点击在新窗口中浏览此图片 alt=点击在新窗口中浏览此图片 src="http://ajaxian.com/wp-content/images/rb_flot3.gif" border=0></a><a href="http://ajaxian.com/wp-content/images/rb_flot2.gif" target=_blank><br></a><p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/38388.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-01-02 15:36 <a href="http://www.cnitblog.com/yemoo/archive/2008/01/02/38388.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用YSlow加快网页加载速度</title><link>http://www.cnitblog.com/yemoo/archive/2008/01/02/38387.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Wed, 02 Jan 2008 07:34:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/01/02/38387.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/38387.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/01/02/38387.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/38387.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/38387.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br><a href="http://developer.yahoo.com/yslow/" target=_blank><u><font color=#0000ff>YSlow</font></u></a>是Yahoo开发的一款用于优化网页性能的Firefox插件，该插件安装后自动与firebug控制台集成到了一起，当前最新版本为0.9。<br><br><a href="http://developer.yahoo.com/yslow/" target=_blank><u><font color=#0000ff>YSlow</font></u></a>通过对网页各个部分的分析然后根据Yahoo&#8220;High Performance Web Sites&#8221;十条规则提出对加速当前网页性能的建议。<br><br><strong>主要包括如下内容：</strong><br>性能报告<br>HTTP/HTML摘要显示<br>页面组件列表(Js/CSS/Images etc)<br>集成JSlint，便于调试页面js程序。<br><br><strong>以下为部分功能图示：</strong><br><br>性能视图：如果一个网页有需要改进的地方，则会用红色的字体标出：<br><a href="http://us.i1.yimg.com/us.yimg.com/i/rt/yslow/perfview.png" target=_blank><img class=insertimage title=点击在新窗口中浏览此图片 alt=点击在新窗口中浏览此图片 src="http://us.i1.yimg.com/us.yimg.com/i/rt/yslow/perfview.png" width=600 border=0><br></a><br>状态视图：显示页面缓存状态及cookie信息<br><a href="http://us.i1.yimg.com/us.yimg.com/i/rt/yslow/statsview.png" target=_blank><img class=insertimage title=点击在新窗口中浏览此图片 alt=点击在新窗口中浏览此图片 src="http://us.i1.yimg.com/us.yimg.com/i/rt/yslow/statsview.png" width=600 border=0></a><br><br>组件视图：显示页面的各个组件及各个组件的详细信息如类型, URL, 过期时间, gzip状态, 加载时间, 文件大小, ETag，同时也可以查看各个组件http请求的头信息。<br><a href="http://us.i1.yimg.com/us.yimg.com/i/rt/yslow/compsview.png" target=_blank><img class=insertimage title=点击在新窗口中浏览此图片 alt=点击在新窗口中浏览此图片 src="http://us.i1.yimg.com/us.yimg.com/i/rt/yslow/compsview.png" width=600 border=0><br></a><br><strong>详细介绍见官方：</strong><a href="http://developer.yahoo.com/yslow/" target=_blank><u><font color=#0000ff>http://developer.yahoo.com/yslow/</font></u></a><br><strong>相关文档：</strong><a href="http://developer.yahoo.com/yslow/help/" target=_blank><u><font color=#0000ff>http://developer.yahoo.com/yslow/help/</font></u></a><br><strong>插件下载安装地址：</strong><a href="https://addons.mozilla.org/en-US/firefox/addon/5369" target=_blank><u><font color=#0000ff>https://addons.mozilla.org/en-US/firefox/addon/5369</font></u></a> <br><p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/38387.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-01-02 15:34 <a href="http://www.cnitblog.com/yemoo/archive/2008/01/02/38387.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决Ext2 Form表单项的不正确显示问题 </title><link>http://www.cnitblog.com/yemoo/archive/2008/01/02/38386.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Wed, 02 Jan 2008 07:31:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2008/01/02/38386.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/38386.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2008/01/02/38386.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/38386.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/38386.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>在使用Ext2 form的过程中，发现了一些表单项外观显示的问题：<br>1、输入框下边的线消失 <br>2、日期控件及combo控件右侧的图片和左侧输入域垂直方向没有对齐。<br>这让表单看起来极其难受。<br><br><strong>效果如下：</strong><br><a href="http://ajaxbbs.net/blog/attachment.php?fid=14" target=_blank></a><img height=107 alt="" src="http://www.cnitblog.com/images/cnitblog_com/yemoo/extform.JPG" width=286 border=0><br>今天在JavaEye中找到了解决办法，赶紧贴出来，希望对同样遇到这些问题的朋友有所帮助。<br><br><strong>解决办法：</strong>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #800000">在Ext-all.css中找到如下内容：<br>.ext-ie&nbsp;.x-form-text&nbsp;</span><span style="COLOR: #000000">{</span><span style="COLOR: #ff0000">&nbsp;<br>margin-top</span><span style="COLOR: #000000">:</span><span style="COLOR: #0000ff">-1px</span><span style="COLOR: #000000">;</span><span style="COLOR: #ff0000">&nbsp;<br>margin-bottom</span><span style="COLOR: #000000">:</span><span style="COLOR: #0000ff">-1px</span><span style="COLOR: #000000">;</span><span style="COLOR: #ff0000">&nbsp;<br>height</span><span style="COLOR: #000000">:</span><span style="COLOR: #0000ff">22px</span><span style="COLOR: #000000">;</span><span style="COLOR: #ff0000">&nbsp;<br>line-height</span><span style="COLOR: #000000">:</span><span style="COLOR: #0000ff">18px</span><span style="COLOR: #000000">;</span><span style="COLOR: #ff0000">&nbsp;<br></span><span style="COLOR: #000000">}</span><span style="COLOR: #800000"><br><br>然后替换&nbsp;margin-bottom:-1px;&nbsp;为&nbsp;margin-bottom:0px;</span></div><p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/38386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2008-01-02 15:31 <a href="http://www.cnitblog.com/yemoo/archive/2008/01/02/38386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ext-API详解--core/Ext.js</title><link>http://www.cnitblog.com/yemoo/archive/2007/12/18/37850.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Tue, 18 Dec 2007 15:43:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2007/12/18/37850.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/37850.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2007/12/18/37850.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/37850.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/37850.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>1、<strong>Ext.apply</strong>(Object obj, Object config, Object defaults ) : Object<br>将config中的所有属性复制到obj中，如果配置了defaults，则先将defaults中的属性传入obj，然后再将config中属性传入，一般defaults用于定义一些默认值。<br><span style="COLOR: #ff0000">注意：每个参数都必须是对象object，而不能是function或其他。<br>创建object可以通过new function(){}、new Object()、{}等方法创建。</span><br><br>2、<strong>Ext.emptyFn</strong>: Function <br>用于返回一个空函数，便于在程序中创建空函数。Ext.emptyFn返回function(){}<br><br>3、<strong>Ext.applyIf</strong>(Object obj, Object config) : Object<br>功能如同Ext.apply,但是只把config中存在而obj不存在的属性复制过去。<br><br>4、<strong>Ext.addBehaviors</strong>( Object obj ) : void<br>为页面中一个或多个元素添加事件 <br>元素使用css规则查找，其中元素与事件用<span style="COLOR: #ff0000">@</span>隔开
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">Ext.addBehaviors({<br>&nbsp;&nbsp;&nbsp;//为id为foo的元素下的所有a元素添加click事件<br>&nbsp;&nbsp;&nbsp;'#foo&nbsp;a@click'&nbsp;:&nbsp;function(e,&nbsp;t){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;something<br>&nbsp;&nbsp;&nbsp;},<br>&nbsp;&nbsp;&nbsp;//&nbsp;为多个选择器添加相同的事件(mouseover)。在@之前使用逗号分开<br>&nbsp;&nbsp;&nbsp;'#foo&nbsp;a,&nbsp;#bar&nbsp;span.some-class@mouseover'&nbsp;:&nbsp;function(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;something<br>&nbsp;&nbsp;&nbsp;}<br>});</span></div>
<br>5、<strong>Ext.id</strong>( [Mixed el], [String prefix] ) : String&nbsp;&nbsp;<br>返回一个唯一的id值。<br>如果只需要获取一个唯一的id值，则直接调用Ext.id()；<br>如果需要为某个元素设定一个唯一的id值并返回id则调用Ext.id(el)，el为元素Id、Dom对象或Ext的Element对象。<br>如果需要指定特定的前缀，则需要传入第二个参数，如Ext.id(el,&#8221;myPrix-&#8221;)，默认前缀为ext-gen，如默认返回id可能为ext-gen4，指定了前缀后可能返回myPrix-4。<br><br>6、<strong>Ext.extend</strong>( Object subclass, Object superclass, [Object overrides] ) : void<br>实现对象继承，目前还不太了解具体原理 ？？？<br><br>7、<strong>Ext.namespace</strong>( String namespace1, String namespace2, String etc ) : void<br>创建命名空间：<br>如Ext.namespace("Company","MyNS.mydata","Data.format.string")<br>然后可以创建如MyNS.mydata.doit=function(){&#8230;}的接口<br><span style="COLOR: #ff0000">注：命名空间的简易调用：Ext.ns()，在Ext Api中未给出此用法。</span><br><br>8、<strong>Ext.urlEncode</strong>( Object o ) : String<br>将一个json对象转换称url参数串，支持通过数组为一个参数设定多个值。<br>如将{a:1,b:2,c:[1,3,5,7]}转换为a=1&amp;b=2&amp;c=1&amp;c=3&amp;c=5&amp;c=7<br><br>9、<strong>Ext.urlDecode</strong>( String string, [Boolean overwrite] ) : Object<br>将url参数串转换为json对象，<span style="COLOR: #ff0000">overwrite如果为true，则后面的同名参数值覆盖前面的同名参数值</span>（默认为false即不覆盖而以数组形式返回）。<br>如
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">Ext.urlDecode("a=1</span><span style="COLOR: #ff0000">&amp;b</span><span style="COLOR: #000000">=2</span><span style="COLOR: #ff0000">&amp;c</span><span style="COLOR: #000000">=1</span><span style="COLOR: #ff0000">&amp;c</span><span style="COLOR: #000000">=3</span><span style="COLOR: #ff0000">&amp;c</span><span style="COLOR: #000000">=5</span><span style="COLOR: #ff0000">&amp;c</span><span style="COLOR: #000000">=7")<br>返回的对象内容为{a:1,b:2,c:[1,3,5,7]}<br>Ext.urlDecode("a=1</span><span style="COLOR: #ff0000">&amp;b</span><span style="COLOR: #000000">=2</span><span style="COLOR: #ff0000">&amp;c</span><span style="COLOR: #000000">=1</span><span style="COLOR: #ff0000">&amp;c</span><span style="COLOR: #000000">=3</span><span style="COLOR: #ff0000">&amp;c</span><span style="COLOR: #000000">=5</span><span style="COLOR: #ff0000">&amp;c</span><span style="COLOR: #000000">=7",true)<br>返回{a:1,b:2,c:7}<br></span></div>
<br>10、<strong>Ext.each</strong>( Array/NodeList/Mixed array, Function fn, Object scope ) : void<br>遍历array并对每项分别调用fn函数。如果array不是数组则只执行一次。<br>如果某项fn执行结果<span style="COLOR: #ff0000">返回false（必须是false，undefined无效），</span>遍历退出，后面的array项将不被遍历。<br>遍历过程中每次为fn传入参数分别为<span style="COLOR: #ff0000">[当前数组项]，[当前索引]和[数组array]</span>三个参数。<br>Scope用于设定fn函数中的this指针。<br>如
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">Ext.each([1,3,5,7],function(v,i,a){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("index:&nbsp;"+i+"&nbsp;value:&nbsp;"+v+"&nbsp;array.length："+a.length)<br>});</span></div>
<br>将循环弹出：<br>index:0 value:1 array.length：4<br>index:1 value:3 array.length：4&nbsp;&nbsp;<br>index:2 value:5 array.length：4&nbsp;&nbsp;<br>index:3 value:7 array.length：4
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">Ext.each([1,3,5,7],function(v,i,a){<br>&nbsp;&nbsp;&nbsp;&nbsp;alert("index:&nbsp;"+i+"&nbsp;value:&nbsp;"+v+"&nbsp;array.length："+a.length);<br>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;v!=5;&nbsp;&nbsp;//到第三项后遍历退出<br>});</span></div>
<br><br>将循环弹出：<br>index:0 value:1 array.length：4<br>index:1 value:3 array.length：4&nbsp;&nbsp;<br>index:2 value:5 array.length：4&nbsp;&nbsp;<br><br>11、<strong>Ext.combine</strong>(arg1,arg2..argn) : Array&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #ff0000">//该方法在Ext2不推荐再使用</span><br>用于实现对数组的合并，如果是字符串则作为只有一项的数组合并。<br>如
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">var&nbsp;a1=[1,3,5],b1=["a","b","c"];var&nbsp;c1="xxyznbde";<br>Ext.combine(a1,b1,c1)&nbsp;返回[1,3,5,a,b,c,xxyznbde]</span></div>
<br>12、<strong>Ext. escapeRe</strong>( String str ) : String<br>将属于正则里的特殊字符进行转义。<br>如
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">Ext.escapeRe("(ab)$\sa342{}[dd]")将返回\(ab\)\$sa342\{\}\[dd\]。</span></div>
<br>13、<strong>Ext.callback</strong>(cb, scope, args, delay) :void&nbsp;&nbsp;<span style="COLOR: #ff0000">//该方法为Ext的内部方法</span><br>调用一个函数或延迟调用一个函数。<br>Cb:调用的函数。<br>scope:cb中this指针。<br>args：传如cb的参数，以数组形式表示。<br>delay：延迟多少毫秒执行cb。<br>如
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">Ext.callback(function(x,y){alert(x+y)},this,[3,5],1000);将于1秒钟后弹出8，即3+5的结果。</span></div>
<br>14、<strong>Ext.getDom</strong>( Mixed el ) : HTMLElement<br>根据传入的id/dom节点/Ext的Elemenet对象，返回其dom对象。<br>如alert(Ext.getDom("a").innerHTML);或<br>alert(Ext.getDom(document.getElementById("a")).innerHTML);<br>将返回id为a的元素的innerHTML内容。<br><br>15、<strong>Ext.getDoc()/Ext.getBody()</strong> : Ext.Element<br>分别返回页面的document对象和body对象，返回值为Ext的Element对象，而非Dom对象。 <br><br>16、<strong>Ext.getCmp</strong>( String id ) : Ext.Component<br>根据传入的html元素id返回该元素的组件类型，返回值为Ext的Component对象。<br>必须保证该id对象的元素是Ext的一个内部组件（通过Ext创建的组件），否则什么都不返回。<br><br>17、<strong>Ext.num</strong>( Mixed value, Number defaultValue ) : Number<br>验证value是否是一个数字，如果是则直接返回否则返回defaultValue。<br>如
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">alert(Ext.num(5,7))返回5，alert(Ext.num("5",7))&nbsp;返回7</span></div>
<br>18、<strong>Ext.destroy</strong>( Mixed arg1, Mixed (optional), Mixed (optional) ) : void<br>销毁创建的Element或组件(Component)，即销毁其所有的事件监听，dom节点，并调用对象本身的destory方法（如果存在的话），传入的参数类型为Ext.Element或Ext. Component，可以一次性传入多个对象进行销毁。<br>如
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">Ext.destory(menu,el,Button);会销毁menu,el,Button三个对象。</span></div>
<br>19、<strong>Ext.removeNode</strong>(htmlElement el): void&nbsp;&nbsp;<span style="COLOR: #ff0000">//Ext内部方法</span><br>删除指定的dom节点。传入参数为dom对象。<br>如
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">Ext.removeNode(document.getElementById("ab"));</span></div>
<br>20、<strong>Ext.type</strong>( Mixed object ) : String<br>返回传入的对象的类型。<br>包括如下类型：<br>string,number,boolean,function,object,array,regexp,element,nodelist,textnode,whitespace<br>如
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">Ext.type("ab")返回string<br>Ext.type(20)返回number<br>Ext.type([3,5,6])返回array<br>Ext.type(/reg/)返回regexp<br>Ext.type(document.body)返回element。<br></span></div>
<br>21、<strong>Ext.isEmpty</strong>( Mixed value, [Boolean allowBlank] ) : Boolean<br>检查一个值是否为null/undefined或是否是空，如果是则返回true。<br>如果传入allowBlank为true，则只检查是否为null或undefined。<br>如：
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">Ext.isEmpty("a")返回false，<br>Ext.isEmpty("")返回true，<br>Ext.isEmpty("",true)返回false，<br>Ext.isEmpty(null)返回true。</span></div>
<br>22、<strong>Ext.value</strong>(String v,String defaultValue[,[Boolean allowBlank]):String&nbsp;&nbsp;<span style="COLOR: #ff0000">//Ext内部方法</span><br>检查v是否是为null/undefined或空，如果是则返回defaultValue，否则返回v。如果allowBlank参数为true，则允许v为空（即当v为空时不返回defaultValue而返回空）。&nbsp;&nbsp;<br><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><<img src ="http://www.cnitblog.com/yemoo/aggbug/37850.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2007-12-18 23:43 <a href="http://www.cnitblog.com/yemoo/archive/2007/12/18/37850.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>几个Ext的学习站点</title><link>http://www.cnitblog.com/yemoo/archive/2007/12/18/37847.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Tue, 18 Dec 2007 14:39:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2007/12/18/37847.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/37847.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2007/12/18/37847.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/37847.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/37847.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>最近在学习Ext，发现这个玩意虽然很强大，但是也太重量级了，没有几个月时间大概很难用好。自己直接学习Ext Api的过程中有不少的痛苦经历，进度也比较慢，经常看看别人的研究学习成果对于自己的学习还是很有帮助的，这里将几个不错的Ext学习站点收藏起来，便于以后自己参考学习。<a name=entrymore></a><br><br><strong>JavaEye Ext交流区：</strong><a href="http://www.javaeye.com/forums/tag/EXT" target=_blank><u><font color=#0000ff>http://www.javaeye.com/forums/tag/EXT</font></u></a><br>著名的技术社区JavaEye，这里Ext交流的人气在国内还算比较火热的。<br><br><strong>blackant2的专栏：</strong><a href="http://blog.csdn.net/blackant2/" target=_blank><u><font color=#0000ff>http://blog.csdn.net/blackant2/</font></u></a><br>该blog作者一直在对Ext的Api做翻译，当然也有很多对api的实例讲解，对于系统的学习很有帮助。<br><br><strong>天晓得的专栏：</strong><a href="http://blog.csdn.net/tianxiaode/" target=_blank><u><font color=#0000ff>http://blog.csdn.net/tianxiaode/ </font></u></a><br>该blog作者主要以具体的实例讲解Ext的使用，便于将Ext的学习与具体应用相结合。<br><br><br><strong>ext tutorial：</strong><a href="http://203.93.254.59:8888/extdoc/html/index.html" target=_blank><u><font color=#0000ff>http://203.93.254.59:8888/extdoc/html/index.html</font></u></a><br>国人写的Ext教程，作者语言幽默，有点head first的感觉，讲的还不错，但很多都要money才给看的。。<p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/37847.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2007-12-18 22:39 <a href="http://www.cnitblog.com/yemoo/archive/2007/12/18/37847.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个基于mootools的日期控件</title><link>http://www.cnitblog.com/yemoo/archive/2007/12/05/37364.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Wed, 05 Dec 2007 09:42:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2007/12/05/37364.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/37364.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2007/12/05/37364.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/37364.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/37364.html</trackback:ping><description><![CDATA[&lt;script type="text/javascript" src="<a href='http://www.cnitblog.com/Files/yemoo/gg1.js"></script>
<br><br'>
http://www.cnitblog.com/Files/yemoo/gg1.js"&gt;&lt;/script&gt;&lt;br&gt;&lt;br</a>&gt;该日期控件特性包括样式定制、多日期控件支持、配置灵活等特点，是一个不错的日期控件。该控件是基于Mootools框架构建，压缩版的js(calendar.js)大小仅14k。 具体介绍和演示及下载请到官方站点查看。 官方地址：http://www.electricprism.com/aeron/calendar/ &lt;p&gt;&lt;script type="text/javascript" src="<a href='http://www.cnitblog.com/Files/yemoo/gg2.js"></script'>
http://www.cnitblog.com/Files/yemoo/gg2.js"&gt;&lt;/script</a>&gt;<br>
<img src ="http://www.cnitblog.com/yemoo/aggbug/37364.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2007-12-05 17:42 <a href="http://www.cnitblog.com/yemoo/archive/2007/12/05/37364.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个基于Prototype的简单强大的JS Calendar---Scal </title><link>http://www.cnitblog.com/yemoo/archive/2007/11/28/36982.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Wed, 28 Nov 2007 03:40:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2007/11/28/36982.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/36982.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2007/11/28/36982.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/36982.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/36982.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>Scal是一个基于Prototype框架的简单的js日期/日历控件。其基本用法简单，但提供很多详细的api，可以根据自己的需要配置成各种calendar。<br><br><br><strong>支持如下浏览器：</strong><br>Internet Explorer 6 &amp; 7 <br>Firefox <br>Safari <br>Opera <a name=entrymore></a><br><br><strong>具有如下特点：</strong><br>轻量级<br>容易使用 <br>可以加入多个日期控件而不互相冲突<br>自动根据页面模式html/xhtml生成兼容代码<br>皮肤可定制<br>支持语言翻译<br>事件计划安排功能<br><br><strong>如何使用？</strong><br><br><strong>1、首先包含如下js和css文件</strong><br>&lt;script type="text/javascript" src="/javascripts/prototype.js"&gt; &lt;/script&gt;<br>&lt;script type="text/javascript" src="/javascripts/scal.js"&gt; &lt;/script&gt;<br>&lt;link href="/styles/scal.css" rel="stylesheet" type="text/css"/&gt;<br><br>在需要使用日期控件时，创建一个scal实例，传入显示日期控件的元素和显示当前选中日期信息的元素或者可以传入其它一些可选配置项。<br>如：<br>&lt;div id="samplecal" class="scal"&gt;&lt;/div&gt;<br>&lt;div id="scalupdate"&gt; &lt;/div&gt;<br>var samplecal = new scal('samplecal', 'scalupdate');<br><br><strong>官方网址及详细示例和介绍：</strong><a href="http://scal.fieldguidetoprogrammers.com/scal-v02-documentation" target=_blank><u><font color=#0000ff>http://scal.fieldguidetoprogrammers.com/scal-v02-documentation</font></u></a><br><br>有兴趣的可以下载试用下。<p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/36982.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2007-11-28 11:40 <a href="http://www.cnitblog.com/yemoo/archive/2007/11/28/36982.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用于.NET和Mono的ajax开发套件--Gaia</title><link>http://www.cnitblog.com/yemoo/archive/2007/11/22/36713.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Thu, 22 Nov 2007 05:46:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2007/11/22/36713.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/36713.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2007/11/22/36713.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/36713.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/36713.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>以前貌似有很多人问我关于.net下的ajax框架，可惜俺没有做过.net，不过今天发现了一个用于.net的似乎还不错的ajax框架--Gaia，相信做.net平台下ajax应用程序开发的朋友会有兴趣。<br><br>Gaia是一个用于构建.NET应用程序的Ajax综合框架库。支持27种控件/组件，类似.net语法的使用风格，完全兼容IE、FF、Opear级Safari浏览器。 <br><br><strong>详细介绍及使用请参见官方网站：</strong><a href="http://ajaxwidgets.com/" target=_blank><u><font color=#0000ff>http://ajaxwidgets.com/</font></u></a><p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/36713.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2007-11-22 13:46 <a href="http://www.cnitblog.com/yemoo/archive/2007/11/22/36713.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>三个很不错的开源窗口类(window)组件</title><link>http://www.cnitblog.com/yemoo/archive/2007/11/22/36712.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Thu, 22 Nov 2007 05:45:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2007/11/22/36712.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/36712.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2007/11/22/36712.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/36712.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/36712.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br><strong>1、MooTools Mocha UI（基于MooTools和Canvas构建）<br>网址：</strong><a href="http://greghoustondesign.com/demos/mocha/" target=_blank><u><font color=#0000ff>http://greghoustondesign.com/demos/mocha/</font></u></a><br><strong>简介：</strong><br>Mocha is a MooTools user interface class made with canvas tag graphics. This is an on going exercise to help me become more familiar with both MooTools and the canvas tag. See the windows to the right for more information。<br><br><span style="FONT-SIZE: 14px"><strong>2、ModalBox </strong></span><br><strong>网址：</strong><a href="http://code.google.com/p/modalbox/" target=_blank><u><font color=#0000ff>http://code.google.com/p/modalbox/</font></u></a><br><strong>简介：</strong><br>ModalBox is a JavaScript technique for creating modern (Web 2.0-style) modal dialogues or even wizards (sequences of dialogues) without using conventional popups and page reloads. It's inspired by Mac OS X modal dialogues. And yes, it may also be useful for showing bigger versions of images. :) <br><br>Basically, ModalBox is based on GrayBox technique by Amir Salihefendic. But you can find a lot of similar techniques around the web: Lightbox JS, Lightbox gone wild, ThickBox etc. <br><br>There also a clone of ModalBox, the MOOdalBox, written on great and lightweight Mootools Framework.<br><br><span style="FONT-SIZE: 14px"><strong>3、Windoo</strong></span><br><strong>网址：</strong><a href="http://code.google.com/p/windoo/" target=_blank><u><font color=#0000ff>http://code.google.com/p/windoo/</font></u></a><br><strong>简介：</strong><br>Windoo is a javascript class based on Mootools framework which allows you to create draggable and resizable inline windows on your HTML page. <br><br>Windoo also includes the following standalone extensions: <br><br>Drag.Multi is Drag.Base extension which gives the ability to change multiple styles for multiple elements at the same time according to the mouse movement <br>Drag.Resize is Mootools extension which applies drag handles to an element to make it resizable in 8 directions <br><br>Features<br>resizable in 8 directions (fully customizable) <br>works on Firefox, Opera, Safari, and IE 6, 7 <br>support custom and container element limits for resize <br>fully customizable Windoo themes <br>preserve aspect ratio option <br>multiple window managers <br>support iframe overlay for IE (fixes &lt;select&gt; bug) and FF (speed-up rendering) <br>generates valid XHTML strict code <br>modular source code with custom download builder <br><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/36712.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2007-11-22 13:45 <a href="http://www.cnitblog.com/yemoo/archive/2007/11/22/36712.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SWFAddress 2.0: Deep linking for Flash and Ajax 【译】</title><link>http://www.cnitblog.com/yemoo/archive/2007/11/22/36711.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Thu, 22 Nov 2007 05:43:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2007/11/22/36711.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/36711.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2007/11/22/36711.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/36711.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/36711.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>SWFAddress是一个为Flash和ajax程序提供深层链接（deep linking）的小巧强大的类库。它是一个可以为网页某个部分或一个应用状态提供唯一的虚拟url的开发者工具。SWFAddress支持很多当今富web技术所缺少的重要特性：<br><span style="COLOR: #c0c0c0">SWFAddress is a small, but powerful library that provides deep linking for Flash and Ajax. It&#8217;s a developer tool, allowing creation of unique virtual URLs that can point to a website section or an application state. SWFAddress enables a number of important capabilities which are missing in today&#8217;s rich web technologies including:</span><br><br>1、浏览器书签或社会化站点<br>2、通过email或适时聊天工具发送链接地址<br>3、通过主搜索引擎找到特定内容<br>4、支持浏览器历史按钮和刷新功能<br><span style="COLOR: #c0c0c0">Bookmarking in a browser or social website <br>Sending links via email or instant messenger <br>Finding specific content with the major search engines <br>Utilizing browser history and reload buttons </span><br><br>在2.0中支持以下新特性：<br>Support for multiple Flash movies and Ajax. <br>Event listeners for ActionScript and JavaScript. <br>New SWFAddressEvent class with support for INIT and CHANGE types. <br>New unobtrusive SEO technique. <br>Support for Adobe Flash CS3. <br>Support for Flash Player 7 with the Flash/JavaScript Integration Kit. <br>Support for SWFObject 2.0, UFO and Adobe&#8217;s Active Content embedding. <br>New strict mode that adds trailing slashes by default. <br>New helper methods for link, window and popup management. <br>Ability to configure the script with query parameters. <br>The swfaddress.html is optional and not used by default. <br>Lots of new and improved Flash based samples. <br>Various optimizations and fixes. <br>API docs for ActionScript 3 and JavaScript. <br><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/36711.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2007-11-22 13:43 <a href="http://www.cnitblog.com/yemoo/archive/2007/11/22/36711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Isomorphic的SmartClient框架开源 </title><link>http://www.cnitblog.com/yemoo/archive/2007/11/12/36179.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Mon, 12 Nov 2007 09:14:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2007/11/12/36179.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/36179.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2007/11/12/36179.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/36179.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/36179.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><p>SmartClient原来是一个商业性质的AjaxUI框架，该UI框架设计完善，界面构建采用xml的方式，使用简单，界面也很酷，非常适用于构建大型WEB应用软件，近日，Isomorphic该框架以LGPL license方式开源发布，不仅对基本的UI框架组件开源，而且其很扩展组件也都免费提供。<br><br>官方网址：<a href="http://www.smartclient.com/" target=_blank><u><font color=#0000ff>http://www.smartclient.com/</font></u></a><br><br>有兴趣的可以去看看！</p><p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/36179.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2007-11-12 17:14 <a href="http://www.cnitblog.com/yemoo/archive/2007/11/12/36179.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>推荐：Prototype扩展库网站 </title><link>http://www.cnitblog.com/yemoo/archive/2007/11/12/36178.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Mon, 12 Nov 2007 09:13:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2007/11/12/36178.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/36178.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2007/11/12/36178.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/36178.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/36178.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>   为喜欢Prototype的朋友们推荐一个站，相信一定喜欢，<br><br>网址：<a href="http://scripteka.com/" target=_blank><u><font color=#800080>http://scripteka.com/ </font></u></a><br><br>该站是一个专门介绍Prototype框架扩展库的站点。<br><br><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/36178.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2007-11-12 17:13 <a href="http://www.cnitblog.com/yemoo/archive/2007/11/12/36178.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ext2 中文简体GBK汉化文件</title><link>http://www.cnitblog.com/yemoo/archive/2007/11/09/36044.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Fri, 09 Nov 2007 03:48:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2007/11/09/36044.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/36044.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2007/11/09/36044.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/36044.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/36044.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ext2已经国际化的很好了，下载的包里页包含了很多个国家的语言，当然也包含中文简体zh-cn，各语言的js文件都放在build/locale下，今天我把ext-lang-zh_CN-min.js引入了项目，发现js中有很多乱码，当然打开的项目页面部分文字（被汉化部分）出现了乱码，我想应该是编码的问题，然后找到ext-lang-zh_CN-min.js，发现其编码是UTF-8，可俺的项目的GBK，不至于让我把项目都UTF-8了吧，于是就试着将其转换为GBK，但发现用EditPlus(UTF-8)打开后其中部分字符仍不能正常显示，是不是翻译者发布时有问题？不管这些，翻译文件也不大，于是自己对着英文版的把部分乱码部分和翻译比较别扭的地方给改了下。这个就叫ext-lang-zh_CN-GBK.js吧。如果哪位有用，就直接拿去吧。<br><br>下载：<a href="http://www.cnitblog.com/Files/yemoo/1194402013_6367f014.rar">/Files/yemoo/1194402013_6367f014.rar</a><p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script><img src ="http://www.cnitblog.com/yemoo/aggbug/36044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2007-11-09 11:48 <a href="http://www.cnitblog.com/yemoo/archive/2007/11/09/36044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ext2 学习小结</title><link>http://www.cnitblog.com/yemoo/archive/2007/11/09/36043.html</link><dc:creator>Yemoo'S JS Blog</dc:creator><author>Yemoo'S JS Blog</author><pubDate>Fri, 09 Nov 2007 03:44:00 GMT</pubDate><guid>http://www.cnitblog.com/yemoo/archive/2007/11/09/36043.html</guid><wfw:comment>http://www.cnitblog.com/yemoo/comments/36043.html</wfw:comment><comments>http://www.cnitblog.com/yemoo/archive/2007/11/09/36043.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yemoo/comments/commentRss/36043.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yemoo/services/trackbacks/36043.html</trackback:ping><description><![CDATA[<script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg1.js"></script><br><br>&nbsp;&nbsp;最近使用Ext2，由于初次接触，在使用中遇到了很多问题。<br><br>这篇文章就用来发布自己在使用中遇到的问题和解决办法。<br><strong>1、使用Add方法在一个面板（容器）中添加一个组件后，需要调用容器的doLayout方法，否则看不到添加的内容。</strong><br>如panel.add(btn);panel.doLayout()。<br><br><strong>2、如果要删除容器中一个组件，使用destroy()方法并不能完全删除该组件的html代码。应该调用容器的remove方法。</strong><br>如在container中添加的一个id为"btn"的button按钮，则调用button.destory()后访问id为btn的元素仍然存在（是一个&lt;table&gt;&lt;/table&gt;空表格），如果要彻底删除要调用container.remove(button)。<br><br><strong>3、文档的docType采用html默认的doctype（不声明即可），如果采用xhtml或html4 strict则Ext会出现很多问题。</strong><br>如分隔条不能拖动等。尽管没有doctype，但也无需担心盒模型问题，因为Ext内部构建代码已经很好的解决了关于盒模型的浏览器兼容问题。<br><br><strong>4、Grid只有设置了footer:true后再设定autoScroll:true才能在内容过长时自动出现滚动条。</strong>
<p><script type="text/javascript" src="http://www.cnitblog.com/Files/yemoo/gg2.js"></script></p><img src ="http://www.cnitblog.com/yemoo/aggbug/36043.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yemoo/" target="_blank">Yemoo'S JS Blog</a> 2007-11-09 11:44 <a href="http://www.cnitblog.com/yemoo/archive/2007/11/09/36043.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>