<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_精于心，简于形.</title><subtitle type="text">Your Potential，Our Passion</subtitle><id>http://feed.cnblogs.com/blog/u/30686/rss</id><updated>2010-09-25T10:12:14Z</updated><author><name>朱胜</name><uri>http://www.cnblogs.com/leochu2008/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/leochu2008/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/30686/rss"/><entry><id>http://www.cnblogs.com/leochu2008/archive/2010/09/25/1834791.html</id><title type="text">exeCommand</title><summary type="text">document.execCommand()方法处理Html数据时常用语法格式如下: 复制内容到剪贴板 代码: document.execCommand(sCommand[,交互方式, 动态参数]) 其中：sCommand为指令参数（如下例中的&amp;#8221;2D-Position&amp;#8221;），交互方式参数如果是true的话将显示对话框，如果为false的话，则不显示对话框（下例中的&amp;#8221...</summary><published>2010-09-25T10:12:00Z</published><updated>2010-09-25T10:12:00Z</updated><author><name>朱胜</name><uri>http://www.cnblogs.com/leochu2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/leochu2008/archive/2010/09/25/1834791.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/leochu2008/archive/2010/09/25/1834791.html"/><content type="html">&lt;h1 &gt;&lt;cite &gt;&lt;/cite&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p  sizset="13" sizcache="1"&gt;document.execCommand()方法处理Html数据时常用语法格式如下: &lt;br /&gt;复制内容到剪贴板 &lt;br /&gt;代码: &lt;br /&gt;document.execCommand(sCommand[,交互方式, 动态参数]) &lt;br /&gt;&lt;br /&gt;其中：sCommand为指令参数（如下例中的&amp;#8221;2D-Position&amp;#8221;），交互方式参数如果是true的话将显示对话框，如果为false的话，则不显示对话框（下例中的&amp;#8221;false&amp;#8221;即表示不显示对话框），动态参数一般为一可用值或属性值（如下例中的&amp;#8221;true&amp;#8221;）。 &lt;br /&gt;&lt;br /&gt;document.execCommand(&amp;#8221;2D-Position&amp;#8221;,&amp;#8221;false&amp;#8221;,&amp;#8221;true&amp;#8221;); &lt;br /&gt;&lt;br /&gt;调用execCommand()可以实现浏览器菜单的很多功能. 如保存文件,打开新文件,撤消、重做操作&amp;#8230;等等. 有了这个方法,就可以很容易的实现网页中的文本编辑器. &lt;br /&gt;&lt;br /&gt;如果灵活运用,可以很好的辅助我们完成各种项目. &lt;br /&gt;&lt;br /&gt;使用的例子如下: &lt;br /&gt;&lt;br /&gt;1、〖全选〗命令的实现 &lt;br /&gt;[格式]:document.execCommand(&amp;#8221;selectAll&amp;#8221;) &lt;br /&gt;[说明]将选种网页中的全部内容！ &lt;br /&gt;[举例]在之间加入： &lt;br /&gt;全选 &lt;br /&gt;&lt;br /&gt;2、〖打开〗命令的实现 &lt;br /&gt;[格式]:document.execCommand(&amp;#8221;open&amp;#8221;) &lt;br /&gt;[说明]这跟VB等编程设计中的webbrowser控件中的命令有些相似，大家也可依此琢磨琢磨。 &lt;br /&gt;[举例]在之间加入： &lt;br /&gt;打开 &lt;br /&gt;&lt;br /&gt;3、〖另存为〗命令的实现 &lt;br /&gt;[格式]:document.execCommand(&amp;#8221;saveAs&amp;#8221;) &lt;br /&gt;[说明]将该网页保存到本地盘的其它目录！ &lt;br /&gt;[举例]在之间加入： &lt;br /&gt;另存为 &lt;br /&gt;&lt;br /&gt;4、〖打印〗命令的实现 &lt;br /&gt;[格式]:document.execCommand(&amp;#8221;print&amp;#8221;) &lt;br /&gt;[说明]当然，你必须装了打印机！ &lt;br /&gt;[举例]在之间加入： &lt;br /&gt;打印 &lt;br /&gt;&lt;br /&gt;Js代码 下面列出的是指令参数及意义 &lt;br /&gt;&lt;br /&gt;//相当于单击文件中的打开按钮 &lt;br /&gt;document.execCommand(&amp;#8221;Open&amp;#8221;); &lt;br /&gt;&lt;br /&gt;//将当前页面另存为 &lt;br /&gt;document.execCommand(&amp;#8221;SaveAs&amp;#8221;); &lt;br /&gt;&lt;br /&gt;//剪贴选中的文字到剪贴板; &lt;br /&gt;document.execCommand(&amp;#8221;Cut&amp;#8221;,&amp;#8221;false&amp;#8221;,null); &lt;br /&gt;&lt;br /&gt;//删除选中的文字; &lt;br /&gt;document.execCommand(&amp;#8221;Delete&amp;#8221;,&amp;#8221;false&amp;#8221;,null); &lt;br /&gt;&lt;br /&gt;//改变选中区域的字体; &lt;br /&gt;document.execCommand(&amp;#8221;FontName&amp;#8221;,&amp;#8221;false&amp;#8221;,sFontName); &lt;br /&gt;&lt;br /&gt;//改变选中区域的字体大小; &lt;br /&gt;document.execCommand(&amp;#8221;FontSize&amp;#8221;,&amp;#8221;false&amp;#8221;,sSize|iSize); &lt;br /&gt;&lt;br /&gt;//设置前景颜色; &lt;br /&gt;document.execCommand(&amp;#8221;ForeColor&amp;#8221;,&amp;#8221;false&amp;#8221;,sColor); &lt;br /&gt;&lt;br /&gt;//使绝对定位的对象可直接拖动; &lt;br /&gt;document.execCommand(&amp;#8221;2D-Position&amp;#8221;,&amp;#8221;false&amp;#8221;,&amp;#8221;true&amp;#8221;); &lt;br /&gt;&lt;br /&gt;//使对象定位变成绝对定位; &lt;br /&gt;document.execCommand(&amp;#8221;AbsolutePosition&amp;#8221;,&amp;#8221;false&amp;#8221;,&amp;#8221;true&amp;#8221;); &lt;br /&gt;&lt;br /&gt;//设置背景颜色; &lt;br /&gt;document.execCommand(&amp;#8221;BackColor&amp;#8221;,&amp;#8221;false&amp;#8221;,sColor); &lt;br /&gt;&lt;br /&gt;//使选中区域的文字加粗; &lt;br /&gt;document.execCommand(&amp;#8221;Bold&amp;#8221;,&amp;#8221;false&amp;#8221;,null); &lt;br /&gt;&lt;br /&gt;//复制选中的文字到剪贴板; &lt;br /&gt;document.execCommand(&amp;#8221;Copy&amp;#8221;,&amp;#8221;false&amp;#8221;,null); &lt;br /&gt;&lt;br /&gt;//设置指定锚点为书签; &lt;br /&gt;document.execCommand(&amp;#8221;CreateBookmark&amp;#8221;,&amp;#8221;false&amp;#8221;,sAnchorName); &lt;br /&gt;&lt;br /&gt;//将选中文本变成超连接,若第二个参数为true,会出现参数设置对话框; &lt;br /&gt;document.execCommand(&amp;#8221;CreateLink&amp;#8221;,&amp;#8221;false&amp;#8221;,sLinkURL); &lt;br /&gt;&lt;br /&gt;//设置当前块的标签名; &lt;br /&gt;document.execCommand(&amp;#8221;FormatBlock&amp;#8221;,&amp;#8221;false&amp;#8221;,sTagName); &lt;br /&gt;&lt;br /&gt;//相当于单击文件中的打开按钮 &lt;br /&gt;document.execCommand(&amp;#8221;Open&amp;#8221;); &lt;br /&gt;&lt;br /&gt;//将当前页面另存为 &lt;br /&gt;document.execCommand(&amp;#8221;SaveAs&amp;#8221;); &lt;br /&gt;&lt;br /&gt;//剪贴选中的文字到剪贴板; &lt;br /&gt;document.execCommand(&amp;#8221;Cut&amp;#8221;,&amp;#8221;false&amp;#8221;,null); &lt;br /&gt;&lt;br /&gt;//删除选中的文字; &lt;br /&gt;document.execCommand(&amp;#8221;Delete&amp;#8221;,&amp;#8221;false&amp;#8221;,null); &lt;br /&gt;&lt;br /&gt;//改变选中区域的字体; &lt;br /&gt;document.execCommand(&amp;#8221;FontName&amp;#8221;,&amp;#8221;false&amp;#8221;,sFontName); &lt;br /&gt;&lt;br /&gt;//改变选中区域的字体大小; &lt;br /&gt;document.execCommand(&amp;#8221;FontSize&amp;#8221;,&amp;#8221;false&amp;#8221;,sSize|iSize); &lt;br /&gt;&lt;br /&gt;//设置前景颜色; &lt;br /&gt;document.execCommand(&amp;#8221;ForeColor&amp;#8221;,&amp;#8221;false&amp;#8221;,sColor); &lt;br /&gt;&lt;br /&gt;//使绝对定位的对象可直接拖动; &lt;br /&gt;document.execCommand(&amp;#8221;2D-Position&amp;#8221;,&amp;#8221;false&amp;#8221;,&amp;#8221;true&amp;#8221;); &lt;br /&gt;&lt;br /&gt;//使对象定位变成绝对定位; &lt;br /&gt;document.execCommand(&amp;#8221;AbsolutePosition&amp;#8221;,&amp;#8221;false&amp;#8221;,&amp;#8221;true&amp;#8221;); &lt;br /&gt;&lt;br /&gt;//设置背景颜色; &lt;br /&gt;document.execCommand(&amp;#8221;BackColor&amp;#8221;,&amp;#8221;false&amp;#8221;,sColor); &lt;br /&gt;&lt;br /&gt;//使选中区域的文字加粗; &lt;br /&gt;document.execCommand(&amp;#8221;Bold&amp;#8221;,&amp;#8221;false&amp;#8221;,null); &lt;br /&gt;&lt;br /&gt;//复制选中的文字到剪贴板; &lt;br /&gt;document.execCommand(&amp;#8221;Copy&amp;#8221;,&amp;#8221;false&amp;#8221;,null); &lt;br /&gt;&lt;br /&gt;//设置指定锚点为书签; &lt;br /&gt;document.execCommand(&amp;#8221;CreateBookmark&amp;#8221;,&amp;#8221;false&amp;#8221;,sAnchorName); &lt;br /&gt;&lt;br /&gt;//将选中文本变成超连接,若第二个参数为true,会出现参数设置对话框; &lt;br /&gt;document.execCommand(&amp;#8221;CreateLink&amp;#8221;,&amp;#8221;false&amp;#8221;,sLinkURL); &lt;br /&gt;&lt;br /&gt;//设置当前块的标签名; &lt;br /&gt;document.execCommand(&amp;#8221;FormatBlock&amp;#8221;,&amp;#8221;false&amp;#8221;,sTagName); &lt;br /&gt;&lt;br /&gt;document对象execCommand通常在IE中在线处理Html数据时非常有用，它可以让你轻而易举实现文字的加粗、加颜色、加字体等一系列的命令。 &lt;br /&gt;&lt;br /&gt;D-Position 允许通过拖曳移动绝对定位的对象。 &lt;br /&gt;AbsolutePosition 设定元素的 position 属性为&amp;#8220;absolute&amp;#8221;(绝对)。 &lt;br /&gt;BackColor 设置或获取当前选中区的背景颜色。 &lt;br /&gt;BlockDirLTR 目前尚未支持。 &lt;br /&gt;BlockDirRTL 目前尚未支持。 &lt;br /&gt;Bold 切换当前选中区的粗体显示与否。 &lt;br /&gt;BrowseMode 目前尚未支持。 &lt;br /&gt;Copy 将当前选中区复制到剪贴板。 &lt;br /&gt;CreateBookmark 创建一个书签锚或获取当前选中区或插入点的书签锚的名称。 &lt;br /&gt;CreateLink 在当前选中区上插入超级链接，或显示一个对话框允许用户指定要为当前选中区插入的超级链接的 URL。 &lt;br /&gt;Cut 将当前选中区复制到剪贴板并删除之。 &lt;br /&gt;Delete 删除当前选中区。 &lt;br /&gt;DirLTR 目前尚未支持。 &lt;br /&gt;DirRTL 目前尚未支持。 &lt;br /&gt;EditMode 目前尚未支持。 &lt;br /&gt;FontName 设置或获取当前选中区的字体。 &lt;br /&gt;FontSize 设置或获取当前选中区的字体大小。 &lt;br /&gt;ForeColor 设置或获取当前选中区的前景(文本)颜色。 &lt;br /&gt;FormatBlock 设置当前块格式化标签。 &lt;br /&gt;Indent 增加选中文本的缩进。 &lt;br /&gt;InlineDirLTR 目前尚未支持。 &lt;br /&gt;InlineDirRTL 目前尚未支持。 &lt;br /&gt;InsertButton 用按钮控件覆盖当前选中区。 &lt;br /&gt;InsertFieldset 用方框覆盖当前选中区。 &lt;br /&gt;InsertHorizontalRule 用水平线覆盖当前选中区。 &lt;br /&gt;InsertIFrame 用内嵌框架覆盖当前选中区。 &lt;br /&gt;InsertImage 用图像覆盖当前选中区。 &lt;br /&gt;InsertInputButton 用按钮控件覆盖当前选中区。 &lt;br /&gt;InsertInputCheckbox 用复选框控件覆盖当前选中区。 &lt;br /&gt;InsertInputFileUpload 用文件上载控件覆盖当前选中区。 &lt;br /&gt;InsertInputHidden 插入隐藏控件覆盖当前选中区。 &lt;br /&gt;InsertInputImage 用图像控件覆盖当前选中区。 &lt;br /&gt;InsertInputPassword 用密码控件覆盖当前选中区。 &lt;br /&gt;InsertInputRadio 用单选钮控件覆盖当前选中区。 &lt;br /&gt;InsertInputReset 用重置控件覆盖当前选中区。 &lt;br /&gt;InsertInputSubmit 用提交控件覆盖当前选中区。 &lt;br /&gt;InsertInputText 用文本控件覆盖当前选中区。 &lt;br /&gt;InsertMarquee 用空字幕覆盖当前选中区。 &lt;br /&gt;InsertOrderedList 切换当前选中区是编号列表还是常规格式化块。 &lt;br /&gt;InsertParagraph 用换行覆盖当前选中区。 &lt;br /&gt;InsertSelectDropdown 用下拉框控件覆盖当前选中区。 &lt;br /&gt;InsertSelectListbox 用列表框控件覆盖当前选中区。 &lt;br /&gt;InsertTextArea 用多行文本输入控件覆盖当前选中区。 &lt;br /&gt;InsertUnorderedList 切换当前选中区是项目符号列表还是常规格式化块。 &lt;br /&gt;Italic 切换当前选中区斜体显示与否。 &lt;br /&gt;JustifyCenter 将当前选中区在所在格式化块置中。 &lt;br /&gt;JustifyFull 目前尚未支持。 &lt;br /&gt;JustifyLeft 将当前选中区所在格式化块左对齐。 &lt;br /&gt;JustifyNone 目前尚未支持。 &lt;br /&gt;JustifyRight 将当前选中区所在格式化块右对齐。 &lt;br /&gt;LiveResize 迫使 MSHTML 编辑器在缩放或移动过程中持续更新元素外观，而不是只在移动或缩放完成后更新。 &lt;br /&gt;MultipleSelection 允许当用户按住 Shift 或 Ctrl 键时一次选中多于一个站点可选元素。 &lt;br /&gt;Open 目前尚未支持。 &lt;br /&gt;Outdent 减少选中区所在格式化块的缩进。 &lt;br /&gt;OverWrite 切换文本状态的插入和覆盖。 &lt;br /&gt;Paste 用剪贴板内容覆盖当前选中区。 &lt;br /&gt;PlayImage 目前尚未支持。 &lt;br /&gt;Print 打开打印对话框以便用户可以打印当前页。 &lt;br /&gt;Redo 目前尚未支持。 &lt;br /&gt;Refresh 刷新当前文档。 &lt;br /&gt;RemoveFormat 从当前选中区中删除格式化标签。 &lt;br /&gt;RemoveParaFormat 目前尚未支持。 &lt;br /&gt;SaveAs 将当前 Web 页面保存为文件。 &lt;br /&gt;SelectAll 选中整个文档。 &lt;br /&gt;SizeToControl 目前尚未支持。 &lt;br /&gt;SizeToControlHeight 目前尚未支持。 &lt;br /&gt;SizeToControlWidth 目前尚未支持。 &lt;br /&gt;Stop 目前尚未支持。 &lt;br /&gt;StopImage 目前尚未支持。 &lt;br /&gt;StrikeThrough 目前尚未支持。 &lt;br /&gt;Subscript 目前尚未支持。 &lt;br /&gt;Superscript 目前尚未支持。 &lt;br /&gt;UnBookmark 从当前选中区中删除全部书签。 &lt;br /&gt;Underline 切换当前选中区的下划线显示与否。 &lt;br /&gt;Undo 目前尚未支持。 &lt;br /&gt;Unlink 从当前选中区中删除全部超级链接。 &lt;br /&gt;Unselect 清除当前选中区的选中状态。 &lt;br /&gt;&lt;br /&gt;关于document.execCommand： &lt;br /&gt;要执行编辑命令，可调用 document.execCommand，并传递对应于命令 ID 的字符串。另外还有可选的第二个参数，该参数指定如果可以应用的话是否显示此命令的用户界面。传递整数 1 将显示用户界面，整数 0 将跳过它。这个参数通常不用于编辑命令。因为默认值为 0，所以假如您没有使用第三个参数（在这种情况下，还必须为第二个参数传递值），一般可以不管它。第三个参数也是可选的，在可应用的情况下，使用它来将任何所需参数传递给该命令。 &lt;br /&gt;&lt;br /&gt;Pixy方法受到IE的cache bug影响会闪烁。其实并没有说清楚这个问题，但其实该bug是有条件的，即IE的cache设置为Every visit to the page，而不是默认的Automatically。基本上，只有开发者才会把cache设置为每次访问检查更新，所以这个bug其实不会影响真正的用户（根据在winxpsp2的ie6下测试，虽然可能仍然调用了一次网络存取的api，但是并没有发生实际的请求，症状就是鼠标有极短时间的抖动，但是图像不会闪烁）。此外有人发现了一个未公开的方法来让IE对背景图进行缓存： &lt;br /&gt;document.execCommand(&amp;#8221;BackgroundImageCache&amp;#8221;,false,true) &lt;br /&gt;&lt;br /&gt;用这种方法甚至避免了api调用，貌似是直接缓存在IE内存中。 &lt;br /&gt;&lt;br /&gt;IE6下设置背景图片是不会被真正cache住的，就算服务器做了cache，如果想cache住只能~~~ &lt;br /&gt;&lt;br /&gt;做过UI设计和开发的人一定知道，IE(不包括IE7)会经常从服务器端重新载入背景图片，好端端的UI界面在IE(不包括IE7)中就这样被折腾着&amp;#8230;&amp;#8230; &lt;br /&gt;&lt;br /&gt;Erik发现了一个简单的解决办法（针对IE7以下的IE有效，其实在IE7中已经修复了这个Bug） &lt;br /&gt;程序代码 程序代码 &lt;br /&gt;&lt;br /&gt;document.execCommand(&amp;#8221;BackgroundImageCache&amp;#8221;, false, true); &lt;br /&gt;&lt;br /&gt;/** &lt;br /&gt;* update@2007-04-02 &lt;br /&gt;*/ &lt;br /&gt;今天阅读Ext的源码时发现Jack Slocum已经考虑到了这一点，在Ext.js中给出了他的实现，在其它Ajax框架中应该还没有这种类似的代码，从这一个细节上就能看出Ext的全面～ &lt;br /&gt;程序代码 程序代码 &lt;br /&gt;&lt;br /&gt;var isIE = ua.indexOf(&amp;#8221;msie&amp;#8221;) &amp;gt; -1, isIE7 = ua.indexOf(&amp;#8221;msie 7&amp;#8243;) &amp;gt; -1; &lt;br /&gt;// remove css image flicker &lt;br /&gt;if(isIE &amp;amp;&amp;amp; !isIE7){ &lt;br /&gt;try{ &lt;br /&gt;document.execCommand(&amp;#8221;BackgroundImageCache&amp;#8221;, false, true); &lt;br /&gt;}catch(e){} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;/** &lt;br /&gt;* update@2007-04-10 &lt;br /&gt;*/ &lt;br /&gt;今天阅读幻宇的dreamplayer播放器源码时发现幻宇也针对IE的背景缓存进行了修复，只是他并没考虑到IE7中已经不存在这个现象了，这是 evml.js中的一段相关代码～(顺便嘀咕两句：这家伙，写JS从来不加分号的，以前是这样，现在还是这样，这样的话怎么进行压缩呀，汗～下面的代码按照我的习惯都已加上分号，哪怕只有两三句而已～) &lt;br /&gt;程序代码 程序代码 &lt;br /&gt;&lt;br /&gt;window.isIE=navigator.appName.indexOf(&amp;#8221;Microsoft&amp;#8221;)==0; &lt;br /&gt;if(isIE){ &lt;br /&gt;document.documentElement.addBehavior(&amp;#8221;#default#userdata&amp;#8221;); &lt;br /&gt;document.execCommand(&amp;#8221;BackgroundImageCache&amp;#8221;,false,true);&lt;/p&gt;&lt;img src="http://www.cnblogs.com/leochu2008/aggbug/1834791.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/leochu2008/archive/2010/09/25/1834791.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/leochu2008/archive/2010/07/17/1779782.html</id><title type="text">Ext 跨域请求解决方案</title><summary type="text">默认情况下，不管是Ajax无法跨域请求的，但是通过一些方式比如代理，iframe，嵌入脚本等方式可以部分满足跨域的功能，Extjs提供了一个封装版本，使用方法也比较简单，但是如果不清楚用法的话还是很郁闷，我调试了好久才知道后台代码也需要做处理，现将用法记录下来以备忘。前台代码：有两种方式请求：1. 方法一：ss = new Ext.data.ScriptTagProxy({  url: 'http...</summary><published>2010-07-17T10:14:00Z</published><updated>2010-07-17T10:14:00Z</updated><author><name>朱胜</name><uri>http://www.cnblogs.com/leochu2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/leochu2008/archive/2010/07/17/1779782.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/leochu2008/archive/2010/07/17/1779782.html"/><content type="html">&lt;p&gt;默认情况下，不管是Ajax无法跨域请求的，但是通过一些方式比如代理，iframe，嵌入脚本等方式可以部分满足跨域的功能，Extjs提供了一个封装版本，使用方法也比较简单，但是如果不清楚用法的话还是很郁闷，我调试了好久才知道后台代码也需要做处理，现将用法记录下来以备忘。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;前台代码：有两种方式请求：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1. 方法一：&lt;/p&gt;&#xD;
&lt;p&gt;ss = new Ext.data.ScriptTagProxy({&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; url: 'http://xxx.xx.xx.xx',//跨域的Url地址&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; callbackParam: "callback",&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; headers: { 'Authorization': 'Basic YWRtaW46YWRtaW4xMjM='}&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;});&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;ss.load({'_out': 'json'},&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new Ext.data.JsonReader({root:"topics"},&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [{name: 'name', mapping: 'name'},&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {name: 'comment', mapping: 'comment'}]),&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function(recordsBlock, arg, isok) {&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(Ext.encode(recordsBlock));&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(Ext.encode(recordsBlock.records[0].data));&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;2. 方法二：&lt;/p&gt;&#xD;
&lt;p&gt;（1）首先引入一个脚本文件CrossDomainAjax.js代码如下：&lt;/p&gt;&#xD;
&lt;p&gt;function SetCrossDomain()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;Ext.override(Ext.data.Connection, {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request : function(o){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(this.fireEvent("beforerequest", this, o) !== false){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var p = o.params;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(typeof p == "function"){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = p.call(o.scope||window, o);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(typeof p == "object"){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = Ext.urlEncode(p);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(this.extraParams){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var extras = Ext.urlEncode(this.extraParams);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = p ? (p + '&amp;amp;' + extras) : extras;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var url = o.url || this.url;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(typeof url == 'function'){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url = url.call(o.scope||window, o);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(o.form){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var form = Ext.getDom(o.form);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url = url || form.action;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var enctype = form.getAttribute("enctype");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(o.isUpload || (enctype &amp;amp;&amp;amp; enctype.toLowerCase() == 'multipart/form-data')){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.doFormUpload(o, p, url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var f = Ext.lib.Ajax.serializeForm(form);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = p ? (p + '&amp;amp;' + f) : f;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var hs = o.headers;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(this.defaultHeaders){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hs = Ext.apply(hs || {}, this.defaultHeaders);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!o.headers){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; o.headers = hs;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var cb = {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success: this.handleResponse,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; failure: this.handleFailure,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scope: this,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; argument: {options: o},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timeout : this.timeout&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var method = o.method||this.method||(p ? "POST" : "GET");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(method == 'GET' &amp;amp;&amp;amp; (this.disableCaching &amp;amp;&amp;amp; o.disableCaching !== false) || o.disableCaching === true){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url += (url.indexOf('?') != -1 ? '&amp;amp;' : '?') + '_dc=' + (new Date().getTime());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(typeof o.autoAbort == 'boolean'){ // options gets top priority&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(o.autoAbort){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.abort();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else if(this.autoAbort !== false){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.abort();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((method == 'GET' &amp;amp;&amp;amp; p) || o.xmlData || o.jsonData){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url += (url.indexOf('?') != -1 ? '&amp;amp;' : '?') + p;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = '';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (o.scriptTag || this.scriptTag || Ext.lib.Ajax.isCrossDomain(url)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (o.scriptTag || this.scriptTag) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.transId = this.scriptRequest(method, url, cb, p, o);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.transId = Ext.lib.Ajax.request(method, url, cb, p, o);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.transId;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ext.callback(o.callback, o.scope, [o, null, null]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scriptRequest : function(method, url, cb, data, options) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var transId = ++Ext.data.ScriptTagProxy.TRANS_ID;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var trans = {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id : transId,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cb : options.callbackName || "stcCallback"+transId,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scriptId : "stcScript"+transId,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; options : options&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url += (url.indexOf("?") != -1 ? "&amp;amp;" : "?") + data + String.format("&amp;amp;{0}={1}", options.callbackParam || this.callbackParam || 'callback', trans.cb);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var conn = this;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window[trans.cb] = function(o){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.handleScriptResponse(o, trans);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set up the timeout handler&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trans.timeoutId = this.handleScriptFailure.defer(cb.timeout, this, [trans]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var script = document.createElement("script");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; script.setAttribute("src", url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; script.setAttribute("type", "text/javascript");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; script.setAttribute("id", trans.scriptId);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementsByTagName("head")[0].appendChild(script);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return trans;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; handleScriptResponse : function(o, trans){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.transId = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.destroyScriptTrans(trans, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var options = trans.options;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Attempt to parse a string parameter as XML.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var doc;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (typeof o == 'string') {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (window.ActiveXObject) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doc = new ActiveXObject("Microsoft.XMLDOM");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doc.async = "false";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doc.loadXML(o);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doc = new DOMParser().parseFromString(o,"text/xml");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create the bogus XHR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response = {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; responseObject: o,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; responseText: (typeof o == "object") ? Ext.util.JSON.encode(o) : String(o),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; responseXML: doc,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; argument: options.argument&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.fireEvent("requestcomplete", this, response, options);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ext.callback(options.success, options.scope, [response, options]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ext.callback(options.callback, options.scope, [options, true, response]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; handleScriptFailure: function(trans) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.transId = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.destroyScriptTrans(trans, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var options = trans.options;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response = {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; argument:&amp;nbsp; options.argument,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status: 500,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; statusText: 'Server failed to respond',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; responseText: ''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/p&gt;&#xD;
&lt;p&gt;this.fireEvent("requestexception", this, response, options, {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status: -1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; statusText: 'communication failure'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ext.callback(options.failure, options.scope, [response, options]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ext.callback(options.callback, options.scope, [options, false, response]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;// private&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; destroyScriptTrans : function(trans, isLoaded){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementsByTagName("head")[0].removeChild(document.getElementById(trans.scriptId));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clearTimeout(trans.timeoutId);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(isLoaded){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window[trans.cb] = undefined;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete window[trans.cb];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(e){}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if hasn't been loaded, wait for load to remove it to prevent script error&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window[trans.cb] = function(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window[trans.cb] = undefined;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete window[trans.cb];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(e){}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;(2) 在需要跨域请求的页面引入该文件&lt;/p&gt;&#xD;
&lt;p&gt;并在Ready函数中执行SetCrossDomain();并添加一下代码：&lt;/p&gt;&#xD;
&lt;p&gt;SetCrossDomain();&lt;br /&gt;&amp;nbsp;Ext.Ajax.request({&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; url: 'http://xxxx.xxx.xxx',//跨域地址&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; scriptTag: true,&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; success: function(req) {&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(req.responseText);&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; },&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; failure: function(req) {&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(req.responseText);&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; },&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; headers: { 'Authorization': 'Basic YWRtaW46YWRtaW4xMjM='},&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; params: { _out: 'json' }&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;});&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;后台代码：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;PHP：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;$json = "xxxxxxxxxxxxxxxxxxxxxxx";//你的json数据&lt;/p&gt;&#xD;
&lt;p&gt;$callback_function = array_key_exists('callback',$_GET) ? $_GET['callback'] : null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;if($callback_function != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;$result = $callback_function ."(".$json).")";&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;else&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;$result = $json;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;echo $result;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;ASP.NET:&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;string json = "...........................";//你的json数据&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string response = json;&lt;/p&gt;&#xD;
&lt;p&gt;string callBack = Request.QueryString["call_back"] as string;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (callBack != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response = callBack + "(" + json + ")";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;Response.Write(response);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Flush();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;通过以上处理，在需要跨域请求时使用方法一的ScriptTagProxy或方法二的scriptTag: true会在请求加上callback参数，后台自动处理，如果没有跨域，后台也会自动识别。&lt;/p&gt;&#xD;
&lt;p&gt;在跨域请求中前台只能以Get方式，因为嵌入脚本代码是用Get方式请求的。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/leochu2008/aggbug/1779782.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/leochu2008/archive/2010/07/17/1779782.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/leochu2008/archive/2010/07/12/1775995.html</id><title type="text">阻止浏览器事件传递</title><summary type="text">阻止jQuery事件冒泡jQuery对DOM的事件触发具有冒泡特性。有时利用这一特性可以减少重复代码，但有时候我们又不希望事件冒泡。这个时候就要阻止 jQuery.Event冒泡。在jQuery.Event 的文档 中的开头得知，jQuery.Event对象是符合W3C标准的一个事件对象，同时jQuery.Event免去了检查兼容IE的步骤。jQuery.Event提供了一个非常简单的方法来阻止事...</summary><published>2010-07-12T11:24:00Z</published><updated>2010-07-12T11:24:00Z</updated><author><name>朱胜</name><uri>http://www.cnblogs.com/leochu2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/leochu2008/archive/2010/07/12/1775995.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/leochu2008/archive/2010/07/12/1775995.html"/><content type="html">&lt;h3 &gt;&lt;a href="http://justcoding.javaeye.com/blog/587876" target="_blank"&gt;&lt;font color="#7d0000"&gt;阻止jQuery事件冒泡&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p &gt;jQuery对DOM的事件触发具有冒泡特性。有时利用这一特性可以减少重复代码，但有时候我们又不希望事件冒泡。这个时候就要阻止 jQuery.Event冒泡。&amp;nbsp;&lt;wbr&gt;&lt;/p&gt;&#xD;
&lt;p &gt;在&lt;a href="http://docs.jquery.com/Events/jQuery.Event" target="_blank"&gt;&lt;font color="#7d0000"&gt;jQuery.Event 的文档&lt;/font&gt;&lt;/a&gt; 中的开头得知，jQuery.Event对象是符合W3C标准的一个事件对象，同时jQuery.Event免去了检查兼容IE的步骤。&amp;nbsp;&lt;wbr&gt;&lt;/p&gt;&#xD;
&lt;p &gt;jQuery.Event提供了一个非常简单的方法来阻止事件冒泡：&lt;strong&gt;event.stopPropagation();&lt;/strong&gt;&amp;nbsp;&lt;wbr&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div&gt;Js代码 &lt;a title="复制代码" href="http://justcoding.javaeye.com/blog/587876#" target="_blank"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;&lt;span&gt;$(&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;"p"&lt;/font&gt;&lt;/span&gt;&lt;span&gt;).click(&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;function&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;(event){ &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p &gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;event.stopPropagation();&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008200"&gt;//&amp;nbsp;&lt;wbr&gt;do&amp;nbsp;&lt;wbr&gt;something&lt;/font&gt;&lt;/span&gt; &lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p &gt;&lt;span&gt;})&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;div &gt;&lt;pre style="display: none" name="code"&gt;$("p").click(function(event){ event.stopPropagation(); // do something })&lt;/pre&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;wbr&gt; &lt;/div&gt;&#xD;
&lt;p &gt;但是这个方法对使用&lt;a href="http://docs.jquery.com/Events/live" target="_blank"&gt;&lt;font color="#7d0000"&gt;live&lt;/font&gt;&lt;/a&gt; 绑定的事件没有作用，需要一个更简单的方法阻止事件冒泡：&lt;strong&gt;return false;&lt;/strong&gt;&amp;nbsp;&lt;wbr&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div&gt;Js代码 &lt;a title="复制代码" href="http://justcoding.javaeye.com/blog/587876#" target="_blank"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;&lt;span&gt;$(&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;"p"&lt;/font&gt;&lt;/span&gt;&lt;span&gt;).live(&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;"click"&lt;/font&gt;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;function&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;(){ &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;$(&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;this&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;).after(&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;"Another&amp;nbsp;&lt;wbr&gt;paragraph!"&lt;/font&gt;&lt;/span&gt;&lt;span&gt;); &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt;&amp;nbsp;&amp;nbsp; &lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;return&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;false&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;});&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;div &gt;&lt;pre style="display: none" name="code"&gt;$("p").live("click", function(){ $(this).after("Another paragraph!"); return false; });&lt;/pre&gt;另外 JavaScript 阻止冒泡&amp;nbsp;&lt;wbr&gt;&lt;/div&gt;&#xD;
&lt;p &gt;阻止冒泡事件的方法有两种，第一种是IE的方法，第二种是DOM方法，至于为什么要分为两种方法去讨论之，这里就不做讨论了，总之是浏览器一些蹩脚的问题，好了废话不说了，直接贴代码了：&amp;nbsp;&lt;wbr&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div&gt;Js代码 &lt;a title="复制代码" href="http://justcoding.javaeye.com/blog/587876#" target="_blank"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;&lt;span&gt;&lt;font color="#008200"&gt;//阻止冒泡事件&lt;/font&gt;&lt;/span&gt; &lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;function&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;stopBubble(e)&amp;nbsp;&lt;wbr&gt;{ &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;wbr&gt;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;if&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;(e&amp;nbsp;&lt;wbr&gt;&amp;amp;&amp;amp;&amp;nbsp;&lt;wbr&gt;e.stopPropagation)&amp;nbsp;&lt;wbr&gt;{&lt;/span&gt;&lt;span&gt;&lt;font color="#008200"&gt;//非IE&lt;/font&gt;&lt;/span&gt; &lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;　　&lt;wbr&gt;e.stopPropagation();&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;}&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;else&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;{&lt;/span&gt;&lt;span&gt;&lt;font color="#008200"&gt;//IE&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;window.event.cancelBubble&amp;nbsp;&lt;wbr&gt;=&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;true&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;} &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;}&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;div &gt;&lt;pre style="display: none" name="code"&gt;//阻止冒泡事件 function stopBubble(e) { if (e &amp;amp;&amp;amp; e.stopPropagation) {//非IE e.stopPropagation(); } else {//IE window.event.cancelBubble = true; } }&lt;/pre&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;wbr&gt;举个例子：就是谷歌首页的更多选项吧，不知道的可以去看看&lt;a href="http://www.google.com/" target="_blank"&gt;&lt;font color="#7d0000"&gt;http://www.google.com/&lt;/font&gt;&lt;/a&gt; 。&lt;br /&gt;这里要应用两个点击事件，一个是div.onclick，另一个就是document.onclick，那么问题就出现了，在调用 div.onclick的时候，由于冒泡事件的存在，会自动的调用document.onclick，由于冒泡的顺序是从里向外的&lt;/div&gt;&#xD;
&lt;p &gt;（div-&amp;gt;body-&amp;gt;document-&amp;gt;html）所以div.onclick事件就会被覆盖掉，也就不会执行了，解决的方案其实也是很简单的哦，就是在执行div.onclick的时候阻止冒泡事件就好了，那怎么阻止呢，就调用上面的函数就ok了！哈哈！&lt;br /&gt;ps：在介绍一下阻止浏览器默认行为的方法，大同小异，这里就不再赘述了。&lt;/p&gt;&#xD;
&lt;p &gt;&lt;wbr&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div&gt;Js代码 &lt;a title="复制代码" href="http://justcoding.javaeye.com/blog/587876#" target="_blank"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;function&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;stopDefault(e)&amp;nbsp;&lt;wbr&gt;{ &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008200"&gt;//阻止默认浏览器动作(W3C)&lt;/font&gt;&lt;/span&gt; &lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;if&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;(e&amp;nbsp;&lt;wbr&gt;&amp;amp;&amp;amp;&amp;nbsp;&lt;wbr&gt;e.preventDefault) &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;e.preventDefault(); &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008200"&gt;//IE中阻止函数器默认动作的方式&lt;/font&gt;&lt;/span&gt; &lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;else&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;window.event.returnValue&amp;nbsp;&lt;wbr&gt;=&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;false&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;return&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&lt;font color="#7f0055"&gt;false&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;wbr&gt;}&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&lt;img src="http://www.cnblogs.com/leochu2008/aggbug/1775995.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/leochu2008/archive/2010/07/12/1775995.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/leochu2008/archive/2010/07/07/1772970.html</id><title type="text">Ext js Grouping 展开和折叠方法</title><summary type="text">Ext.get('expand').on('click', function() {　　grid.getView().expandAllGroups();});Ext.get('collapse').on('click', function() {　　grid.getView().collapseAllGroups();});Ext.get('toggle').on('click', functi...</summary><published>2010-07-07T08:37:00Z</published><updated>2010-07-07T08:37:00Z</updated><author><name>朱胜</name><uri>http://www.cnblogs.com/leochu2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/leochu2008/archive/2010/07/07/1772970.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/leochu2008/archive/2010/07/07/1772970.html"/><content type="html">&lt;table style="table-layout: fixed; width: 100%"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;div &gt;Ext.get('expand').on('click', function() {&lt;br /&gt;　　grid.getView().expandAllGroups();&lt;br /&gt;});&lt;/div&gt;&#xD;
&lt;div &gt;&lt;br /&gt;Ext.get('collapse').on('click', function() {&lt;br /&gt;　　grid.getView().collapseAllGroups();&lt;br /&gt;});&lt;/div&gt;&#xD;
&lt;div &gt;&lt;br /&gt;Ext.get('toggle').on('click', function() {&lt;br /&gt;　　grid.getView().toggleAllGroups();&lt;br /&gt;});&lt;/div&gt;&#xD;
&lt;div &gt;&lt;br /&gt;Ext.get('one').on('click', function() {&lt;br /&gt;　　var view = grid.getView();&lt;br /&gt;　　var groupId = view.getGroupId('female');&lt;br /&gt;　　view.toggleGroup(groupId);&lt;br /&gt;});&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://www.cnblogs.com/leochu2008/aggbug/1772970.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/leochu2008/archive/2010/07/07/1772970.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/leochu2008/archive/2010/06/29/1767276.html</id><title type="text">JS获取上传文件的绝对路径，兼容IE和FF</title><summary type="text">&amp;lt;html&amp;gt; &amp;lt;head&amp;gt;  &amp;lt;title&amp;gt;JS获取上传文件的绝对路径，兼容IE和FF&amp;lt;/title&amp;gt;  &amp;lt;script type="text/javascript"&amp;gt; function readFile(fileBrowser) {  if (navigator.userAgent.indexOf("MSIE")!=-1)  readF...</summary><published>2010-06-29T02:11:00Z</published><updated>2010-06-29T02:11:00Z</updated><author><name>朱胜</name><uri>http://www.cnblogs.com/leochu2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/leochu2008/archive/2010/06/29/1767276.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/leochu2008/archive/2010/06/29/1767276.html"/><content type="html">&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;lt;html&amp;gt; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;lt;head&amp;gt; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;JS获取上传文件的绝对路径，兼容IE和FF&amp;lt;/title&amp;gt; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type="text/javas&lt;wbr&gt;cript"&amp;gt; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;function readFile(fileBrowser) { &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (navigator.userAgent.indexOf("MSIE")!=-1) &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; readFileIE(fileBrowser); &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (navigator.userAgent.indexOf("Firefox")!=-1 || navigator.userAgent.indexOf("Mozilla")!=-1) &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; readFileFirefox(fileBrowser); &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert("Not IE or Firefox (userAgent=" + navigator.userAgent + ")"); &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;} &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;function readFileFirefox(fileBrowser) { &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try { &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;nbsp;&lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (e) { &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert('路径错误!'); &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var fileName=fileBrowser.value; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var file = Components.classes["@mozilla.org/file/local;1"] &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .createInstance(Components.interfaces.nsILocalFile); &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try { &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file.initWithPath( fileName.replace(/\//g, "\\\\") ); &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch(e) { &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( file.exists() == false ) { &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert("File '" + fileName + "' not found."); &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(file.path); &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;} &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;function readFileIE(fileBrowser) { &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;alert(document.getElementById("fileBrowser").value);&lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;} &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;lt;/head&amp;gt; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;lt;body&amp;gt; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form name="form1"&amp;gt; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="file" name="fileBrowser" size="50" on&lt;wbr&gt;change="readFile(this)" /&amp;gt; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;lt;/body&amp;gt; &lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;span style="font-weight: bold; color: rgb(51,102,255); font-family: Arial"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;br style="font-weight: bold; color: rgb(51,102,255); font-family: Arial" /&gt;&lt;img src="http://www.cnblogs.com/leochu2008/aggbug/1767276.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/leochu2008/archive/2010/06/29/1767276.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/leochu2008/archive/2010/06/24/1764790.html</id><title type="text">asp.net2.0中异步调用WebService</title><summary type="text">由于asp2.0提供了异步页的支持使异步调用WebService的性能有了真正的提升。 使用异步页，首先要设置Async="true"，异步页是在Prerender和PrerenderComplete事件间加入Begin，end异步方法实现的，Begin和End方法属于不同的线程。 WS异步页的实现有两种方式： 1、使用等待方法实现异步 通用类，封装了WS /**//// &amp;lt;summary&amp;...</summary><published>2010-06-24T15:08:00Z</published><updated>2010-06-24T15:08:00Z</updated><author><name>朱胜</name><uri>http://www.cnblogs.com/leochu2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/leochu2008/archive/2010/06/24/1764790.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/leochu2008/archive/2010/06/24/1764790.html"/><content type="html">由于asp2.0提供了异步页的支持使异步调用WebService的性能有了真正的提升。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;使用异步页，首先要设置Async="true"，异步页是在Prerender和PrerenderComplete事件间加入Begin，end异步方法实现的，Begin和End方法属于不同的线程。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;WS异步页的实现有两种方式： &lt;br /&gt;&amp;nbsp;&amp;nbsp;1、使用等待方法实现异步 &lt;br /&gt;&amp;nbsp;&amp;nbsp;通用类，封装了WS &lt;br /&gt;&amp;nbsp;&amp;nbsp;/**//// &amp;lt;summary&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp; /// 使用等待方法实现异步 &lt;br /&gt;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="name"&amp;gt;&amp;lt;/param&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp; private Account account; &lt;br /&gt;&amp;nbsp;&amp;nbsp; private string username; &lt;br /&gt;&amp;nbsp;&amp;nbsp; public Account Account &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp; get { return account; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; set { account = value; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; public string Username &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp; get { return username; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; set { username = value; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; public IAsyncResult BeginAsyncGetAccount(object sender, EventArgs e, AsyncCallback cb, object state) &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; return vb.BeginGetAccountbyName(username,cb,state); &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; public void EndAsyncGetAccount(IAsyncResult ar) &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp; account = vb.EndGetAccountbyName(ar); &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; /**//// &amp;lt;summary&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp; /// 使用事件驱动的异步 &lt;br /&gt;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="username"&amp;gt;&amp;lt;/param&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp; public void GetAccountCompleted(Object source, VB.GetAccountbyNameCompletedEventArgs e) &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp; account = e.Result; &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; public void AsGetAccount(string username) &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp; vb.GetAccountbyNameCompleted += new GetAccountbyNameCompletedEventHandler(GetAccountCompleted); &lt;br /&gt;&amp;nbsp;&amp;nbsp; vb.GetAccountbyNameAsync(username） &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; }调用方法 &lt;br /&gt;&amp;nbsp;&amp;nbsp; protected void Page_Load(object sender, EventArgs e) &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp; this.PreRenderComplete += new EventHandler(Page_PreRenderComplete); &lt;br /&gt;&amp;nbsp;&amp;nbsp; b.Username = "dinghao"; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; AddOnPreRenderCompleteAsync(b.BeginAsyncGetAccount, b.EndAsyncGetAccount); &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; protected void Page_PreRenderComplete(object sender, EventArgs e) &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp; //异步调用结束 &lt;br /&gt;&amp;nbsp;&amp;nbsp; VB.Account a = b.Account; &lt;br /&gt;&amp;nbsp;&amp;nbsp; AccountIf ai = new AccountIf(a); &lt;br /&gt;&amp;nbsp;&amp;nbsp; ais[0] = ai; &lt;br /&gt;&amp;nbsp;&amp;nbsp; GridView1.DataSource = ais; &lt;br /&gt;&amp;nbsp;&amp;nbsp; GridView1.DataBind(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; }由于AddOnPreRenderCompleteAsync的两个委托都是Void类型，所以在通用类中要加入有返回值的属性如：Account供主调方法使用，另外委托中没有异步方法的参数信息，要加入参数的属性如：Username &lt;br /&gt;&amp;nbsp;&amp;nbsp;2、事件驱动的异步（2.0新增） &lt;br /&gt;&amp;nbsp;&amp;nbsp;调用方法： &lt;br /&gt;&amp;nbsp;&amp;nbsp;protected void Page_Load(object sender, EventArgs e) &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp; this.PreRenderComplete += new EventHandler(Page_PreRenderComplete); &lt;br /&gt;&amp;nbsp;&amp;nbsp; b.AsGetAccount("dinghao"); &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; protected void Page_PreRenderComplete(object sender, EventArgs e) &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp; //异步调用结束 &lt;br /&gt;&amp;nbsp;&amp;nbsp; VB.Account a = b.Account; &lt;br /&gt;&amp;nbsp;&amp;nbsp; AccountIf ai = new AccountIf(a); &lt;br /&gt;&amp;nbsp;&amp;nbsp; ais[0] = ai; &lt;br /&gt;&amp;nbsp;&amp;nbsp; GridView1.DataSource = ais; &lt;br /&gt;&amp;nbsp;&amp;nbsp; GridView1.DataBind(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; }这种调用方式，用的是*Completed事件，在*Async完成时触发，这种调用方式可以 &lt;br /&gt;&amp;nbsp;&amp;nbsp;省去Account，Username属性，用起来比较简单 &lt;br /&gt;&lt;img src="http://www.cnblogs.com/leochu2008/aggbug/1764790.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/leochu2008/archive/2010/06/24/1764790.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/leochu2008/archive/2010/06/24/1764789.html</id><title type="text">ASP.Net的正则表达式（RegularExpression）</title><summary type="text">正则表达式（RegularExpression）是一个正则表达式就是由普通字符（例如字符 a 到 z）以及特殊字符（称为元字符）组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板，将某个字符模式与所搜索的字符串进行匹配。 使用正则表达式，就可以： 1. 测试字符串的某个模式。例如，可以对一个输入字符串进行测试，看在该字符串是否存在一个电话号码模式或一个信用卡...</summary><published>2010-06-24T15:07:00Z</published><updated>2010-06-24T15:07:00Z</updated><author><name>朱胜</name><uri>http://www.cnblogs.com/leochu2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/leochu2008/archive/2010/06/24/1764789.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/leochu2008/archive/2010/06/24/1764789.html"/><content type="html">&lt;p&gt;正则表达式（RegularExpression）是一个正则表达式就是由普通字符（例如字符 a 到 z）以及特殊字符（称为元字符）组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板，将某个字符模式与所搜索的字符串进行匹配。 &lt;br /&gt;使用正则表达式，就可以： &lt;br /&gt;1. 测试字符串的某个模式。例如，可以对一个输入字符串进行测试，看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。 &lt;br /&gt;2. 替换文本。可以在文档中使用一个正则表达式来标识特定文字，然后可以全部将其删除，或者替换为别的文字。 &lt;br /&gt;3. 根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。 &lt;br /&gt;例如，如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记，则可以使用正则表达式对每个文件进行测试，看在该文件中是否存在所要查找的材料或 HTML 格式化标记。用这个方法，就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料，最后，可以再次使用正则表达式来查找并替换那些需要替换的标记。 &lt;br /&gt;另一个说明正则表达式非常有用的示例是一种其字符串处理能力还不为人所知的语言。VBScript 是 Visual Basic 的一个子集，具有丰富的字符串处理功能。与 C 类似的 Visual Basic Scripting Edition 则没有这一能力。正则表达式给 Visual Basic Scripting Edition 的字符串处理能力带来了明显改善。不过，可能还是在 VBScript 中使用正则表达式的效率更高，它允许在单个表达式中执行多个字符串操作。&lt;br /&gt;正是由于&amp;#8220;正则表达式&amp;#8221;的强大功能，才使得微软慢慢将正则表达式对象移植到了视窗系统上面。在书写正则表达式的模式时使用了特殊的字符和序列。下表描述了可以使用的字符和序列，并给出了实例。 &lt;br /&gt;字符描述： \：将下一个字符标记为特殊字符或字面值。例如"n"与字符"n"匹配。"\n"与换行符匹配。序列"\\"与"\"匹配，"\("与"("匹配。 &lt;br /&gt;^ ：匹配输入的开始位置。 &lt;br /&gt;$ ：匹配输入的结尾。 &lt;br /&gt;* ：匹配前一个字符零次或几次。例如，"zo*"可以匹配"z"、"zoo"。 &lt;br /&gt;+ ：匹配前一个字符一次或多次。例如，"zo+"可以匹配"zoo",但不匹配"z"。 &lt;br /&gt;? ：匹配前一个字符零次或一次。例如，"a?ve?"可以匹配"never"中的"ve"。 &lt;br /&gt;.：匹配换行符以外的任何字符。 &lt;br /&gt;(pattern) 与模式匹配并记住匹配。匹配的子字符串可以从作为结果的 Matches 集合中使用 Item [0]...[n]取得。如果要匹配括号字符(和 )，可使用"\(" 或 "\)"。 &lt;br /&gt;x|y：匹配 x 或 y。例如 "z|food" 可匹配 "z" 或 "food"。"(z|f)ood" 匹配 "zoo" 或 "food"。 &lt;br /&gt;{n}：n 为非负的整数。匹配恰好n次。例如，"o{2}" 不能与 "Bob 中的 "o" 匹配，但是可以与"foooood"中的前两个o匹配。 &lt;br /&gt;{n,} ：n 为非负的整数。匹配至少n次。例如，"o{2,}"不匹配"Bob"中的"o"，但是匹配"foooood"中所有的o。"o{1,}"等价于"o+"。"o{0,}"等价于"o*"。 &lt;br /&gt;{n,m} ：m 和 n 为非负的整数。匹配至少 n 次，至多 m 次。例如，"o{1,3}" 匹配 "fooooood"中前三个o。"o{0,1}"等价于"o?"。 &lt;br /&gt;[xyz] ：一个字符集。与括号中字符的其中之一匹配。例如，"[abc]" 匹配"plain"中的"a"。 &lt;br /&gt;[^xyz] ：一个否定的字符集。匹配不在此括号中的任何字符。例如，"[^abc]" 可以匹配"plain"中的"p". &lt;br /&gt;[a-z] ：表示某个范围内的字符。与指定区间内的任何字符匹配。例如，"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。 &lt;br /&gt;[^m-z] ：否定的字符区间。与不在指定区间内的字符匹配。例如，"[m-z]"与不在"m"到"z"之间的任何字符匹配。 &lt;br /&gt;\b ：与单词的边界匹配，即单词与空格之间的位置。例如，"er\b" 与"never"中的"er"匹配，但是不匹配"verb"中的"er"。 &lt;br /&gt;\B ：与非单词边界匹配。"ea*r\B"与"never early"中的"ear"匹配。 &lt;br /&gt;\d ：与一个数字字符匹配。等价于[0-9]。 &lt;br /&gt;\D ：与非数字的字符匹配。等价于[^0-9]。 &lt;br /&gt;\f ：与分页符匹配。 &lt;br /&gt;\n ：与换行符字符匹配。 &lt;br /&gt;\r ：与回车字符匹配。 &lt;br /&gt;\s ：与任何白字符匹配，包括空格、制表符、分页符等。等价于"[ \f\n\r\t\v]"。 &lt;br /&gt;\S ：与任何非空白的字符匹配。等价于"[^ \f\n\r\t\v]"。 &lt;br /&gt;\t ：与制表符匹配。 &lt;br /&gt;\v ：与垂直制表符匹配。 &lt;br /&gt;\w ：与任何单词字符匹配，包括下划线。等价于"[A-Za-z0-9_]"。 &lt;br /&gt;\W ：与任何非单词字符匹配。等价于"[^A-Za-z0-9_]"。 &lt;br /&gt;\num ：匹配 num个，其中 num 为一个正整数。引用回到记住的匹配。例如，"(.)\1"匹配两个连续的相同的字符。 &lt;br /&gt;\n：匹配 n，其中n 是一个八进制换码值。八进制换码值必须是 1, 2 或 3 个数字长。 &lt;br /&gt;例如，"\11" 和 "\011" 都与一个制表符匹配。"\0011"等价于"\001" 与 "1"。八进制换码值不得超过 256。否则，只有前两个字符被视为表达式的一部分。允许在正则表达式中使用ASCII码。 &lt;br /&gt;\xn：匹配n，其中n是一个十六进制的换码值。十六进制换码值必须恰好为两个数字长。例如，"\x41"匹配"A"。"\x041"等价于"\x04" 和 "1"。允许在正则表达式中使用 ASCII 码。 &lt;br /&gt;RegularExpressionValidator有两种主要的属性来进行有效性验证。ControlToValidate 包含了一个值进行验证。如取出文本框中的值。如ControlToValidate="TextBox1" ValidationExpression 包含了一个正则表达式进行验证。&lt;br /&gt;好了，有了上面的叙述，我们就举个例子来说明正则表达式。比如，我们想要对用户输入的电子邮件进行校验，那么，什么样的数据才算是一个合法的电子邮件呢？我可以这样输入：test@yesky.com，当然我也会这样输入：xxx@yyy.com.cn,但是这样的输入就是非法的：xxx@@com.cn或者@xxx.com.cn，等等，所以我们得出一个合法的电子邮件地址至少应当满足以下几个条件： &lt;br /&gt;1. 必须包含一个并且只有一个符号&amp;#8220;@&amp;#8221; &lt;br /&gt;2. 第一个字符不得是&amp;#8220;@&amp;#8221;或者&amp;#8220;.&amp;#8221; &lt;br /&gt;3. 不允许出现&amp;#8220;@.&amp;#8221;或者.@ &lt;br /&gt;4. 结尾不得是字符&amp;#8220;@&amp;#8221;或者&amp;#8220;.&amp;#8221; &lt;br /&gt;所以根据以上的原则和上面表中的语法，我们很容易的就可以得到需要的模板如下："= "^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$"&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/leochu2008/aggbug/1764789.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/leochu2008/archive/2010/06/24/1764789.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/leochu2008/archive/2010/05/25/1743532.html</id><title type="text">Extjs简介（二）</title><summary type="text">除了我们已经讨论过的核心Javascrīpt库，现在的Ext亦包括了一系列的最前端的JavaScirptUI组件库。文本以一个最常用的widget为例子，作简单的介绍。 MessageBox 比起略为沉闷的&amp;#8220;HelloWolrd&amp;#8221;消息窗口，我们做少许变化，前面我们写的代码是，单击某个段落便会高亮显示，现在是单击段落，在消息窗口中显示段落内容出来。在上面的paragraphC...</summary><published>2010-05-25T05:34:00Z</published><updated>2010-05-25T05:34:00Z</updated><author><name>朱胜</name><uri>http://www.cnblogs.com/leochu2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/leochu2008/archive/2010/05/25/1743532.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/leochu2008/archive/2010/05/25/1743532.html"/><content type="html">&lt;p&gt;除了我们已经讨论过的核心Javascrīpt库，现在的Ext亦包括了一系列的最前端的JavaScirptUI组件库。文本以一个最常用的widget为例子，作简单的介绍。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;MessageBox &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;比起略为沉闷的&amp;#8220;HelloWolrd&amp;#8221;消息窗口，我们做少许变化，前面我们写的代码是，单击某个段落便会高亮显示，现在是单击段落，在消息窗口中显示段落内容出来。&lt;br /&gt;在上面的paragraphClicked的function中，将这行代码： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_614938"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt; &#xD;
&lt;div &gt;&#xD;
&lt;object id="highlighter_614938_clipboard" title="copy to clipboard" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" type="application/x-shockwave-flash" height="16" width="16" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&#xD;
&lt;param name="_cx" value="423" /&gt;&lt;param name="_cy" value="423" /&gt;&lt;param name="FlashVars" value="" /&gt;&lt;param name="Movie" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="Src" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="WMode" value="Transparent" /&gt;&lt;param name="Play" value="0" /&gt;&lt;param name="Loop" value="-1" /&gt;&lt;param name="Quality" value="High" /&gt;&lt;param name="SAlign" value="" /&gt;&lt;param name="Menu" value="0" /&gt;&lt;param name="Base" value="" /&gt;&lt;param name="AllowScriptAccess" value="always" /&gt;&lt;param name="Scale" value="ShowAll" /&gt;&lt;param name="DeviceFont" value="0" /&gt;&lt;param name="EmbedMovie" value="0" /&gt;&lt;param name="BGColor" value="" /&gt;&lt;param name="SWRemote" value="" /&gt;&lt;param name="MovieData" value="" /&gt;&lt;param name="SeamlessTabbing" value="1" /&gt;&lt;param name="Profile" value="0" /&gt;&lt;param name="ProfileAddress" value="" /&gt;&lt;param name="ProfilePort" value="0" /&gt;&lt;param name="AllowNetworking" value="all" /&gt;&lt;param name="AllowFullScreen" value="false" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Ext.get(e.target).highlight();&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;替换为： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_414662"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt; &#xD;
&lt;div &gt;&#xD;
&lt;object id="highlighter_414662_clipboard" title="copy to clipboard" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" type="application/x-shockwave-flash" height="16" width="16" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&#xD;
&lt;param name="_cx" value="423" /&gt;&lt;param name="_cy" value="423" /&gt;&lt;param name="FlashVars" value="" /&gt;&lt;param name="Movie" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="Src" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="WMode" value="Transparent" /&gt;&lt;param name="Play" value="0" /&gt;&lt;param name="Loop" value="-1" /&gt;&lt;param name="Quality" value="High" /&gt;&lt;param name="SAlign" value="" /&gt;&lt;param name="Menu" value="0" /&gt;&lt;param name="Base" value="" /&gt;&lt;param name="AllowScriptAccess" value="always" /&gt;&lt;param name="Scale" value="ShowAll" /&gt;&lt;param name="DeviceFont" value="0" /&gt;&lt;param name="EmbedMovie" value="0" /&gt;&lt;param name="BGColor" value="" /&gt;&lt;param name="SWRemote" value="" /&gt;&lt;param name="MovieData" value="" /&gt;&lt;param name="SeamlessTabbing" value="1" /&gt;&lt;param name="Profile" value="0" /&gt;&lt;param name="ProfileAddress" value="" /&gt;&lt;param name="ProfilePort" value="0" /&gt;&lt;param name="AllowNetworking" value="all" /&gt;&lt;param name="AllowFullScreen" value="false" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;paragraph = Ext.get(e.target); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;paragraph.highlight(); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Ext.MessageBox.show({ &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;title: &lt;/code&gt;&lt;code &gt;'Paragraph Clicked'&lt;/code&gt;&lt;code &gt;, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;5.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;msg: paragraph.dom.innerHTML, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;6.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;width:400, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;7.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;buttons: Ext.MessageBox.OK, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;8.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;animEl: paragraph});&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;这里有些新的概念讨论一下。在第一行中我们创建了一个局部变量（Local Variable）来保存某个元素的引用，即被单击的那个DOM节点（本例中，我们总是段落paragrah,事因我们已经定义该事件与&amp;lt;p&amp;gt;标签发生关联的了）。为什么要这样做呢？嗯...观察上面的代码，我们需要引用同一元素来高亮显示，在MessageBox中也是引用同一元素作为参数使用。&lt;br /&gt;一般来说，多次重复使用同一值（Value）或对象，是一个不好的方式，所以，作为一个好的OOP开发者，应该是将其分配到一个局部变量中，反复使用这变量！ &lt;/p&gt;&#xD;
&lt;p&gt;现在，观察MessageBox的调用，准备作为阐述新概念的演示用。乍一看，这像一连串的参数传入到方法中，但仔细看，这是一个非常特别的语法。实际上，传入到MessageBox.show的只有一个参数：一个Object literal,包含一组属性和属性值。在Javascrīpt中，Object Literal是动态的，你可在任何时候用{和}创建一个典型的对象(object)。其中的字符由一系列的name/value组成的属性，属性的格式是[property name]:[property value]。在整个Ext中，你将会经常遇到这种模式的语法，因此你应该消耗掉这知识！&lt;br /&gt;使用Object Literal的原因是什么呢？主要的原因是&amp;#8220;韧性（flexibility）"，随时可新增、删除属性，亦可不管顺序地插入。而方法不需要改变。这也是多个参数的情况下，为最终开发者带来不少的方便（本例中的MessageBox.show())。例如，我们说这儿的foo.action方法，有四个参数，而只有一个是你必须传入的。本例中，你想像中的代码可能会是这样的foo.action(null, null, null, 'hello').,若果那方法用Object Literal来写，却是这样， foo.action({ param4: 'hello' })，这更易用和易读。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Gird &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Gird是Ext中人们最想先睹为快的Widgets之一，也是最流行之一。好，让我们看看怎么轻松地创建一个Gird并运行。用下列代码替换ExtStart.js中全部语句： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_666025"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt; &#xD;
&lt;div &gt;&#xD;
&lt;object id="highlighter_666025_clipboard" title="copy to clipboard" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" type="application/x-shockwave-flash" height="16" width="16" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&#xD;
&lt;param name="_cx" value="423" /&gt;&lt;param name="_cy" value="423" /&gt;&lt;param name="FlashVars" value="" /&gt;&lt;param name="Movie" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="Src" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="WMode" value="Transparent" /&gt;&lt;param name="Play" value="0" /&gt;&lt;param name="Loop" value="-1" /&gt;&lt;param name="Quality" value="High" /&gt;&lt;param name="SAlign" value="" /&gt;&lt;param name="Menu" value="0" /&gt;&lt;param name="Base" value="" /&gt;&lt;param name="AllowScriptAccess" value="always" /&gt;&lt;param name="Scale" value="ShowAll" /&gt;&lt;param name="DeviceFont" value="0" /&gt;&lt;param name="EmbedMovie" value="0" /&gt;&lt;param name="BGColor" value="" /&gt;&lt;param name="SWRemote" value="" /&gt;&lt;param name="MovieData" value="" /&gt;&lt;param name="SeamlessTabbing" value="1" /&gt;&lt;param name="Profile" value="0" /&gt;&lt;param name="ProfileAddress" value="" /&gt;&lt;param name="ProfilePort" value="0" /&gt;&lt;param name="AllowNetworking" value="all" /&gt;&lt;param name="AllowFullScreen" value="false" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Ext.onReady(&lt;/code&gt;&lt;code &gt;function&lt;/code&gt;&lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;myData = [ &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;[&lt;/code&gt;&lt;code &gt;'Apple'&lt;/code&gt;&lt;code &gt;,29.89,0.24,0.81,&lt;/code&gt;&lt;code &gt;'9/1 12:00am'&lt;/code&gt;&lt;code &gt;], &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;[&lt;/code&gt;&lt;code &gt;'Ext'&lt;/code&gt;&lt;code &gt;,83.81,0.28,0.34,&lt;/code&gt;&lt;code &gt;'9/12 12:00am'&lt;/code&gt;&lt;code &gt;],&amp;nbsp; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;[&lt;/code&gt;&lt;code &gt;'Google'&lt;/code&gt;&lt;code &gt;,71.72,0.02,0.03,&lt;/code&gt;&lt;code &gt;'10/1 12:00am'&lt;/code&gt;&lt;code &gt;],&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;[&lt;/code&gt;&lt;code &gt;'Microsoft'&lt;/code&gt;&lt;code &gt;,52.55,0.01,0.02,&lt;/code&gt;&lt;code &gt;'7/4 12:00am'&lt;/code&gt;&lt;code &gt;],&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;[&lt;/code&gt;&lt;code &gt;'Yahoo!'&lt;/code&gt;&lt;code &gt;,29.01,0.42,1.47,&lt;/code&gt;&lt;code &gt;'5/22 12:00am'&lt;/code&gt;&lt;code &gt;] &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;];&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;ds = &lt;/code&gt;&lt;code &gt;new&lt;/code&gt; &lt;code &gt;Ext.data.Store({ &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;10.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;proxy: &lt;/code&gt;&lt;code &gt;new&lt;/code&gt; &lt;code &gt;Ext.data.MemoryProxy(myData), &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;11.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;reader: &lt;/code&gt;&lt;code &gt;new&lt;/code&gt; &lt;code &gt;Ext.data.ArrayReader({id: 0}, [ &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;12.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 84px! important"&gt;&lt;code &gt;{name: &lt;/code&gt;&lt;code &gt;'company'&lt;/code&gt;&lt;code &gt;}, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;13.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 84px! important"&gt;&lt;code &gt;{name: &lt;/code&gt;&lt;code &gt;'price'&lt;/code&gt;&lt;code &gt;, type: &lt;/code&gt;&lt;code &gt;'float'&lt;/code&gt;&lt;code &gt;}, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;14.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 84px! important"&gt;&lt;code &gt;{name: &lt;/code&gt;&lt;code &gt;'change'&lt;/code&gt;&lt;code &gt;, type: &lt;/code&gt;&lt;code &gt;'float'&lt;/code&gt;&lt;code &gt;}, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;15.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 84px! important"&gt;&lt;code &gt;{name: &lt;/code&gt;&lt;code &gt;'pctChange'&lt;/code&gt;&lt;code &gt;, type: &lt;/code&gt;&lt;code &gt;'float'&lt;/code&gt;&lt;code &gt;}, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;16.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 84px! important"&gt;&lt;code &gt;{name: &lt;/code&gt;&lt;code &gt;'lastChange'&lt;/code&gt;&lt;code &gt;, type: &lt;/code&gt;&lt;code &gt;'date'&lt;/code&gt;&lt;code &gt;, dateFormat: &lt;/code&gt;&lt;code &gt;'n/j h:ia'&lt;/code&gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;17.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;]) &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;18.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;}); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;19.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;ds.load(); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;20.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;colModel = &lt;/code&gt;&lt;code &gt;new&lt;/code&gt; &lt;code &gt;Ext.grid.ColumnModel([ &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;21.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;{header: &lt;/code&gt;&lt;code &gt;"Company"&lt;/code&gt;&lt;code &gt;, width: 120, sortable: &lt;/code&gt;&lt;code &gt;true&lt;/code&gt;&lt;code &gt;, dataIndex: &lt;/code&gt;&lt;code &gt;'company'&lt;/code&gt;&lt;code &gt;}, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;22.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;{header: &lt;/code&gt;&lt;code &gt;"Price"&lt;/code&gt;&lt;code &gt;, width: 90, sortable: &lt;/code&gt;&lt;code &gt;true&lt;/code&gt;&lt;code &gt;, dataIndex: &lt;/code&gt;&lt;code &gt;'price'&lt;/code&gt;&lt;code &gt;}, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;23.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;{header: &lt;/code&gt;&lt;code &gt;"Change"&lt;/code&gt;&lt;code &gt;, width: 90, sortable: &lt;/code&gt;&lt;code &gt;true&lt;/code&gt;&lt;code &gt;, dataIndex: &lt;/code&gt;&lt;code &gt;'change'&lt;/code&gt;&lt;code &gt;}, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;24.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;{header: &lt;/code&gt;&lt;code &gt;"% Change"&lt;/code&gt;&lt;code &gt;, width: 90, sortable: &lt;/code&gt;&lt;code &gt;true&lt;/code&gt;&lt;code &gt;, dataIndex: &lt;/code&gt;&lt;code &gt;'pctChange'&lt;/code&gt;&lt;code &gt;}, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;25.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;{header: &lt;/code&gt;&lt;code &gt;"Last Updated"&lt;/code&gt;&lt;code &gt;, width: 120, sortable: &lt;/code&gt;&lt;code &gt;true&lt;/code&gt;&lt;code &gt;, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;26.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;renderer: Ext.util.Format.dateRenderer(&lt;/code&gt;&lt;code &gt;'m/d/Y'&lt;/code&gt;&lt;code &gt;), &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;27.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 7px! important"&gt;&lt;code &gt;dataIndex: &lt;/code&gt;&lt;code &gt;'lastChange'&lt;/code&gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;28.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;]); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;29.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;grid = &lt;/code&gt;&lt;code &gt;new&lt;/code&gt; &lt;code &gt;Ext.grid.Grid(&lt;/code&gt;&lt;code &gt;'grid-example'&lt;/code&gt;&lt;code &gt;, {ds: ds, cm: colModel}); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;30.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;grid.render(); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;31.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;grid.getSelectionModel().selectFirstRow(); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;32.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;});&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;这看上去很复杂，但实际上加起来，只有七行代码。第一行创建数组并作为数据源。实际案例中，你很可能从数据库、或者WebService那里得到动态的数据。接着，我们创建并加载data store， data store将会告诉Ext的底层库接手处理和格式化这些数据。接着，我们定义一个column模型，用来轻松地调配Gird的每一列参数。最后我们生成这个Gird,传入data store和column模型两个对象，进行渲染并选好第一行。不是太困难吧？如果一切顺利，搞掂之后你会看到像这样的： &lt;/p&gt;&lt;img title="点击图片可在新窗口打开" style="cursor: pointer" src="http://www.ajaxjs.com/comm/UserFiles/Image/20070322731.gif"  alt="" /&gt; &#xD;
&lt;p&gt;当然，你可能对这段代码的某些细节，并不完全掌握其中的含义（像MemoryProxy究竟是什么？）但先不要紧，这个例子的目的是告诉你，用少量的代码，创建一个富界面的多功能的UI组件而已&amp;#8212;&amp;#8212;这是完全可能的，更多细节的内容，留给读者你自己学习吧。这儿有许多学习Grid的资源。&lt;a href="http://www.extjs.com/tutorial/introduction-ext#" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #333333"&gt;Ext Grid教程&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;、&lt;a href="http://www.extjs.com/tutorial/introduction-ext#" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #333333"&gt;交叉Gird演示&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;和&lt;a href="http://www.extjs.com/tutorial/introduction-ext#" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #333333"&gt;Gird API文档&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;还有更多的..&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这只是冰山一角。还有一打的UI Widgets可以供调用，如 layouts, tabs, menus, toolbars, dialogs, tree view等等。请参阅API文档中&lt;a href="http://www.ajaxjs.com/yuicn/article.asp?id=20072736#" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #333333"&gt;范例演示&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;使用Ajax&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在弄好一些页面后，你已经懂得在页面和脚本之间的控制原理（interact）。接下来，你想知道的是，怎样与后台服务器（remote server）交换数据，常见的是从数据库加载数据（load）或是保存数据（save）到数据库中。通过Javascrīpt异步无刷新交换数据的这种方式，就是所谓的Ajax。Ext内建卓越的Ajax支持，例如，一个普遍的用户操作就是，异步发送一些东西到服务器，然后，UI元素根据回应（Response）作出更新。这是一个包含text input的表单，一个div用于显示消息（注意，你可以在ExtStart.html中加入下列代码，但这必须要访问服务器）： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_582735"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt; &#xD;
&lt;div &gt;&#xD;
&lt;object id="highlighter_582735_clipboard" title="copy to clipboard" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" type="application/x-shockwave-flash" height="16" width="16" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&#xD;
&lt;param name="_cx" value="423" /&gt;&lt;param name="_cy" value="423" /&gt;&lt;param name="FlashVars" value="" /&gt;&lt;param name="Movie" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="Src" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="WMode" value="Transparent" /&gt;&lt;param name="Play" value="0" /&gt;&lt;param name="Loop" value="-1" /&gt;&lt;param name="Quality" value="High" /&gt;&lt;param name="SAlign" value="" /&gt;&lt;param name="Menu" value="0" /&gt;&lt;param name="Base" value="" /&gt;&lt;param name="AllowScriptAccess" value="always" /&gt;&lt;param name="Scale" value="ShowAll" /&gt;&lt;param name="DeviceFont" value="0" /&gt;&lt;param name="EmbedMovie" value="0" /&gt;&lt;param name="BGColor" value="" /&gt;&lt;param name="SWRemote" value="" /&gt;&lt;param name="MovieData" value="" /&gt;&lt;param name="SeamlessTabbing" value="1" /&gt;&lt;param name="Profile" value="0" /&gt;&lt;param name="ProfileAddress" value="" /&gt;&lt;param name="ProfilePort" value="0" /&gt;&lt;param name="AllowNetworking" value="all" /&gt;&lt;param name="AllowFullScreen" value="false" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;&amp;lt;DIV id=msg style=&lt;/code&gt;&lt;code &gt;"VISIBILITY: hidden"&lt;/code&gt;&lt;code &gt;&amp;gt;&amp;lt;/DIV&amp;gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 7px! important"&gt;&lt;code &gt;Name: &amp;lt;INPUT id=name&amp;gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;&amp;lt;BR&amp;gt;&amp;nbsp; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;&amp;lt;INPUT id=oKButton type=button value=OK&amp;gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;接着，我们加入这些处理交换数据的Javascrīpt代码到文件ExtStart.js中(用下面的代码覆盖)： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_557879"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt; &#xD;
&lt;div &gt;&#xD;
&lt;object id="highlighter_557879_clipboard" title="copy to clipboard" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" type="application/x-shockwave-flash" height="16" width="16" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&#xD;
&lt;param name="_cx" value="423" /&gt;&lt;param name="_cy" value="423" /&gt;&lt;param name="FlashVars" value="" /&gt;&lt;param name="Movie" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="Src" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="WMode" value="Transparent" /&gt;&lt;param name="Play" value="0" /&gt;&lt;param name="Loop" value="-1" /&gt;&lt;param name="Quality" value="High" /&gt;&lt;param name="SAlign" value="" /&gt;&lt;param name="Menu" value="0" /&gt;&lt;param name="Base" value="" /&gt;&lt;param name="AllowScriptAccess" value="always" /&gt;&lt;param name="Scale" value="ShowAll" /&gt;&lt;param name="DeviceFont" value="0" /&gt;&lt;param name="EmbedMovie" value="0" /&gt;&lt;param name="BGColor" value="" /&gt;&lt;param name="SWRemote" value="" /&gt;&lt;param name="MovieData" value="" /&gt;&lt;param name="SeamlessTabbing" value="1" /&gt;&lt;param name="Profile" value="0" /&gt;&lt;param name="ProfileAddress" value="" /&gt;&lt;param name="ProfilePort" value="0" /&gt;&lt;param name="AllowNetworking" value="all" /&gt;&lt;param name="AllowFullScreen" value="false" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;01.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Ext.onReady(&lt;/code&gt;&lt;code &gt;function&lt;/code&gt;&lt;code &gt;(){ &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;02.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;Ext.get(&lt;/code&gt;&lt;code &gt;'oKButton'&lt;/code&gt;&lt;code &gt;).on(&lt;/code&gt;&lt;code &gt;'click'&lt;/code&gt;&lt;code &gt;, &lt;/code&gt;&lt;code &gt;function&lt;/code&gt;&lt;code &gt;(){ &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;03.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;msg = Ext.get(&lt;/code&gt;&lt;code &gt;"msg"&lt;/code&gt;&lt;code &gt;); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;04.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 84px! important"&gt;&lt;code &gt;msg.load({ &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;05.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 84px! important"&gt;&lt;code &gt;url: [server url], &lt;/code&gt;&lt;code &gt;//换成你的URL &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;06.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 84px! important"&gt;&lt;code &gt;params: &lt;/code&gt;&lt;code &gt;"name="&lt;/code&gt; &lt;code &gt;+ Ext.get(&lt;/code&gt;&lt;code &gt;'name'&lt;/code&gt;&lt;code &gt;).dom.value, &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;07.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 84px! important"&gt;&lt;code &gt;text: &lt;/code&gt;&lt;code &gt;"Updating..."&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;08.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;}); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;09.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;msg.show(); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;10.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 28px! important"&gt;&lt;code &gt;});});&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;这种模式看起来已经比较熟悉了吧！先获取按钮元素，加入单击事件的监听。在事件处理器中（event handler），我们使用一个负责处理Ajax请求、接受响应（Response）和更新另一个元素的Ext内建类，称作&lt;a href="http://www.extjs.com/tutorial/introduction-ext#" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #333333"&gt;UpdateManager&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;。UpdateManager可以直接使用，或者和我们现在的做法一样，通过Element的load方法来访问（本例中该元素是&amp;#8220;msg&amp;#8220;的div）。当使用&lt;a href="http://www.extjs.com/tutorial/introduction-ext#" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #333333"&gt;Element.load&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;方法，请求（request)会被加工处理后发送，等待服务器的响应（Response），来自动替换元素的innerHTML。简单传入服务器url地址，加上字符串参数，便可以处理这个请求（本例中，参数值来自&amp;#8220;name&amp;#8221;元素的value),而text值就是请求发送时提示的文本，完毕后显示那个msg的div（因为开始时默认隐藏）。当然，和大多数Ext组件一样，UpdateManager有许多的参数可选，不同的Ajax请求有不同的方案。而这里仅演示最简单的那种。 &lt;/p&gt;&#xD;
&lt;fieldset&gt;&lt;legend&gt;PHP&lt;/legend&gt;&#xD;
&lt;div  id="highlighter_609330"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt; &#xD;
&lt;div &gt;&#xD;
&lt;object id="highlighter_609330_clipboard" title="copy to clipboard" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" type="application/x-shockwave-flash" height="16" width="16" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&#xD;
&lt;param name="_cx" value="423" /&gt;&lt;param name="_cy" value="423" /&gt;&lt;param name="FlashVars" value="" /&gt;&lt;param name="Movie" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="Src" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="WMode" value="Transparent" /&gt;&lt;param name="Play" value="0" /&gt;&lt;param name="Loop" value="-1" /&gt;&lt;param name="Quality" value="High" /&gt;&lt;param name="SAlign" value="" /&gt;&lt;param name="Menu" value="0" /&gt;&lt;param name="Base" value="" /&gt;&lt;param name="AllowScriptAccess" value="always" /&gt;&lt;param name="Scale" value="ShowAll" /&gt;&lt;param name="DeviceFont" value="0" /&gt;&lt;param name="EmbedMovie" value="0" /&gt;&lt;param name="BGColor" value="" /&gt;&lt;param name="SWRemote" value="" /&gt;&lt;param name="MovieData" value="" /&gt;&lt;param name="SeamlessTabbing" value="1" /&gt;&lt;param name="Profile" value="0" /&gt;&lt;param name="ProfileAddress" value="" /&gt;&lt;param name="ProfilePort" value="0" /&gt;&lt;param name="AllowNetworking" value="all" /&gt;&lt;param name="AllowFullScreen" value="false" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;&amp;lt;? &lt;/code&gt;&lt;code &gt;if&lt;/code&gt;&lt;code &gt;(isset($_GET[&lt;/code&gt;&lt;code &gt;'name'&lt;/code&gt;&lt;code &gt;])) { echo &lt;/code&gt;&lt;code &gt;'From Server: '&lt;/code&gt;&lt;code &gt;.$_GET[&lt;/code&gt;&lt;code &gt;'name'&lt;/code&gt;&lt;code &gt;]; } ?&amp;gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/fieldset&gt; &#xD;
&lt;fieldset&gt;&lt;legend&gt;ASP.Net&lt;/legend&gt;&#xD;
&lt;div  id="highlighter_130789"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt; &#xD;
&lt;div &gt;&#xD;
&lt;object id="highlighter_130789_clipboard" title="copy to clipboard" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" type="application/x-shockwave-flash" height="16" width="16" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&#xD;
&lt;param name="_cx" value="423" /&gt;&lt;param name="_cy" value="423" /&gt;&lt;param name="FlashVars" value="" /&gt;&lt;param name="Movie" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="Src" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="WMode" value="Transparent" /&gt;&lt;param name="Play" value="0" /&gt;&lt;param name="Loop" value="-1" /&gt;&lt;param name="Quality" value="High" /&gt;&lt;param name="SAlign" value="" /&gt;&lt;param name="Menu" value="0" /&gt;&lt;param name="Base" value="" /&gt;&lt;param name="AllowScriptAccess" value="always" /&gt;&lt;param name="Scale" value="ShowAll" /&gt;&lt;param name="DeviceFont" value="0" /&gt;&lt;param name="EmbedMovie" value="0" /&gt;&lt;param name="BGColor" value="" /&gt;&lt;param name="SWRemote" value="" /&gt;&lt;param name="MovieData" value="" /&gt;&lt;param name="SeamlessTabbing" value="1" /&gt;&lt;param name="Profile" value="0" /&gt;&lt;param name="ProfileAddress" value="" /&gt;&lt;param name="ProfilePort" value="0" /&gt;&lt;param name="AllowNetworking" value="all" /&gt;&lt;param name="AllowFullScreen" value="false" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;protected&lt;/code&gt; &lt;code &gt;void&lt;/code&gt; &lt;code &gt;Page_Load(object sender, EventArgs e) &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;{ &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;if&lt;/code&gt; &lt;code &gt;(Request[&lt;/code&gt;&lt;code &gt;"name"&lt;/code&gt;&lt;code &gt;] != &lt;/code&gt;&lt;code &gt;null&lt;/code&gt;&lt;code &gt;) &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;{ &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;5.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Response.Write(&lt;/code&gt;&lt;code &gt;"From Server: "&lt;/code&gt; &lt;code &gt;+ Request[&lt;/code&gt;&lt;code &gt;"name"&lt;/code&gt;&lt;code &gt;]); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;6.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Response.End(); &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;7.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;8.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;}&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/fieldset&gt; &#xD;
&lt;fieldset&gt;&lt;legend&gt;Cold Fusion &lt;/legend&gt;&#xD;
&lt;div  id="highlighter_712888"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt; &#xD;
&lt;div &gt;&#xD;
&lt;object id="highlighter_712888_clipboard" title="copy to clipboard" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" type="application/x-shockwave-flash" height="16" width="16" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&#xD;
&lt;param name="_cx" value="423" /&gt;&lt;param name="_cy" value="423" /&gt;&lt;param name="FlashVars" value="" /&gt;&lt;param name="Movie" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="Src" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="WMode" value="Transparent" /&gt;&lt;param name="Play" value="0" /&gt;&lt;param name="Loop" value="-1" /&gt;&lt;param name="Quality" value="High" /&gt;&lt;param name="SAlign" value="" /&gt;&lt;param name="Menu" value="0" /&gt;&lt;param name="Base" value="" /&gt;&lt;param name="AllowScriptAccess" value="always" /&gt;&lt;param name="Scale" value="ShowAll" /&gt;&lt;param name="DeviceFont" value="0" /&gt;&lt;param name="EmbedMovie" value="0" /&gt;&lt;param name="BGColor" value="" /&gt;&lt;param name="SWRemote" value="" /&gt;&lt;param name="MovieData" value="" /&gt;&lt;param name="SeamlessTabbing" value="1" /&gt;&lt;param name="Profile" value="0" /&gt;&lt;param name="ProfileAddress" value="" /&gt;&lt;param name="ProfilePort" value="0" /&gt;&lt;param name="AllowNetworking" value="all" /&gt;&lt;param name="AllowFullScreen" value="false" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;&amp;lt;cfif StructKeyExists(url, &lt;/code&gt;&lt;code &gt;"name"&lt;/code&gt;&lt;code &gt;)&amp;gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;&amp;lt;cfoutput&amp;gt;From Server:&lt;/code&gt; &lt;code &gt;#url.name#&amp;lt;/cfoutput&amp;gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;&amp;lt;/cfif&amp;gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/fieldset&gt; &#xD;
&lt;p&gt;最后一个关于Ajax的谜题就是，服务器实际处理请求和返回（Resposne）的具体过程。这个过程会是一个服务端页面，一个Servlet，一个Http处理器，一个WebService,甚至是Perl或CGI脚本，即任何一个服务器都可以处理http请求。无法预料的是，服务器返回什么是服务器的事情，无法给一个标准的例子来覆盖所有的可能性。(这段代码输出刚才我们传入'name'的那个值到客户端，即发送什么，返回什么）。 &lt;/p&gt;&#xD;
&lt;p&gt;使用Ajax的真正挑战，是需经过适当处理过的手工代码，并相应格式化为服务端可用接受的数据结构。有几种格式供人们选择（最常用为JSON/XML)。正因Ext是一种与服务器中立的语言，使得其它特定语言的库亦可用于Ext处理Ajax服务。只要页面接受到结果是合适的数据格式，Ext绝不会过问服务器的事情！要全面讨论这个问题，已超出本文的范围。推荐正在使用Ajax的您，深入阅读&lt;a href="http://www.ajaxjs.com/yuicn/article.asp?id=20072736#" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #333333"&gt;Ext Ajax教程&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;。 &lt;/p&gt;&#xD;
&lt;p&gt;译者姓名：Frank&lt;br /&gt;译者博客：&lt;a href="http://www.ajaxjs.com/blog/" target="_blank"&gt;http://www.ajaxjs.com/blog/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/leochu2008/aggbug/1743532.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/leochu2008/archive/2010/05/25/1743532.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/leochu2008/archive/2010/05/25/1743528.html</id><title type="text">Extjs框架简介(一)</title><summary type="text">无论你是Ext库的新手，抑或是想了解Ext的人，本篇文章的内容都适合你。本文将简单地介绍Ext的几个基本概念，和如何快速地做出一个动态的页面并运行起来，假设读者已具备了一些JavaScript经验和初级了解HTML Dom。否则的话，请从阅读初学JavaScript资源开始。 下载Ext如果你未曾下载过，那应从这里下载最新版本的Ext http://extjs.com/downloads。 针对你...</summary><published>2010-05-25T05:32:00Z</published><updated>2010-05-25T05:32:00Z</updated><author><name>朱胜</name><uri>http://www.cnblogs.com/leochu2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/leochu2008/archive/2010/05/25/1743528.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/leochu2008/archive/2010/05/25/1743528.html"/><content type="html">&lt;p&gt;无论你是Ext库的新手，抑或是想了解Ext的人，本篇文章的内容都适合你。本文将简单地介绍Ext的几个基本概念，和如何快速地做出一个动态的页面并运行起来，假设读者已具备了一些JavaScript经验和初级了解HTML Dom。否则的话，请从阅读&lt;a href="http://www.extjs.com/downloads" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #0000ff"&gt;初学JavaScript资源&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;开始。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;下载Ext&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果你未曾下载过，那应从这里下载最新版本的Ext &lt;a href="http://www.extjs.com/downloads" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #0000ff"&gt;&lt;a href="http://extjs.com/downloads" target="_blank"&gt;http://extjs.com/downloads&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;。 &lt;/p&gt;&#xD;
&lt;p&gt;针对你的下载需求，有几个不同的弹性选项。通常地，最稳定的版本，是较多人的选择。下载解包后，那个example文件夹便是一个探索Ext的好地方！ &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;开始！&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们将使用Ext，来完成一些JavaScript任务。 &lt;/p&gt;&#xD;
&lt;p&gt;第一步要做的是，下载本教程的&lt;a href="http://www.extjs.com/downloads/tutorial/introduction-ext/IntroToExt.zip" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #0000ff"&gt;示例文件&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;。Zip文件包括三个文件：&lt;strong&gt;ExtStart.html&lt;/strong&gt;, &lt;strong&gt;ExtStart.js&lt;/strong&gt;和&lt;strong&gt;ExtStart.css&lt;/strong&gt;。解包这三个文件到Ext的安装目录中（例如，Ext是在&amp;#8220;C:\code\Ext\v1.0&amp;#8221;中，那应该在"v1.0"里面新建目录&amp;#8220;tutorial&amp;#8221;。双击&lt;strong&gt;ExtStart.htm&lt;/strong&gt;，接着你的浏览器打开启动页面，应该会有一条消息告诉你配置已完毕。如果是一个Javascript错误，请按照页面上的指引操作。 &lt;/p&gt;&#xD;
&lt;p&gt;在你常用的IDE中或文本编辑器中，打开ExtStart.js看看： &lt;/p&gt;&#xD;
&lt;p&gt;Ext.onReady可能是你接触的第一个方法。这个方法是指当前DOM加载完毕后，保证页面内的所有元素能被Script引用（reference）。你可删除alert()那行，加入一些实际用途的代码试试： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_435355"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;pre&gt;Ext.onReady(function() {alert("Congratulations!&amp;nbsp; You have Ext configured correctly!");});&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Element：Ext的核心&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;大多数的JavaScript操作都需要获取页面上的某个元素（reference）,好让你来做有趣的事情。传统的JavaScript方法，是通过ID获取Dom节点的： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_838933"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt; &#xD;
&lt;div &gt;&#xD;
&lt;object id="highlighter_838933_clipboard" title="copy to clipboard" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" type="application/x-shockwave-flash" height="16" width="16" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&#xD;
&lt;param name="_cx" value="423" /&gt;&lt;param name="_cy" value="423" /&gt;&lt;param name="FlashVars" value="" /&gt;&lt;param name="Movie" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="Src" value="/SyntaxHighlighter/Scripts/clipboard.swf" /&gt;&lt;param name="WMode" value="Transparent" /&gt;&lt;param name="Play" value="0" /&gt;&lt;param name="Loop" value="-1" /&gt;&lt;param name="Quality" value="High" /&gt;&lt;param name="SAlign" value="" /&gt;&lt;param name="Menu" value="0" /&gt;&lt;param name="Base" value="" /&gt;&lt;param name="AllowScriptAccess" value="always" /&gt;&lt;param name="Scale" value="ShowAll" /&gt;&lt;param name="DeviceFont" value="0" /&gt;&lt;param name="EmbedMovie" value="0" /&gt;&lt;param name="BGColor" value="" /&gt;&lt;param name="SWRemote" value="" /&gt;&lt;param name="MovieData" value="" /&gt;&lt;param name="SeamlessTabbing" value="1" /&gt;&lt;param name="Profile" value="0" /&gt;&lt;param name="ProfileAddress" value="" /&gt;&lt;param name="ProfilePort" value="0" /&gt;&lt;param name="AllowNetworking" value="all" /&gt;&lt;param name="AllowFullScreen" value="false" /&gt;&lt;/object&gt;var myDiv = document.getElementById('myDiv');&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;这毫无问题，不过这样单单返回一个对象（DOM节点），用起来并不是太强大和好用。为了要用那节点干点事情，你将会要写不少自定义的代码；另外，对于不同类型浏览器之间的差异，要你处理起来可真头大了。 &lt;/p&gt;&#xD;
&lt;p&gt;进入&lt;a href="http://www.extjs.com/deploy/docs/output/Ext.Element.html" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #0000ff"&gt;Ext.element&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;对象。元素（element）的的确确是Ext的心脏地带，--无论是访问元素（elements）还是完成一些动作，都要涉及它。Element的API是整个Ext库的基础，如果你时间不多，只想了解Ext中的一个类的话，Element一定是首选！ &lt;/p&gt;&#xD;
&lt;p&gt;由ID获取一个Ext Element如下（首页ExtStart.htm包含一个div，ID名字为&amp;#8220;myDiv&amp;#8221;，然后，在ExtStart.js中加入下列语句）： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_31586"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Ext.onReady(function() {var myDiv = Ext.get('myDiv');});&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;再回头看看Element对象，发现什么有趣的东东呢？ &lt;/p&gt;&#xD;
&lt;ul&gt;&lt;li&gt;Element包含了常见的DOM方法和属性，提供一个快捷的、统一的、跨浏览器的接口（若使用Element.dom的话，就可以直接访问底层DOM的节点。）；&lt;/li&gt;&lt;li&gt;Element.get()方法内置缓存处理（Cache)，多次访问同一对象效率上有极大优势；&lt;/li&gt;&lt;li&gt;内置常用的DOM节点的动作，并且是跨浏览器的定位的位置、大小、动画、拖放等等（add/remove CSS classes, add/remove event handlers, positioning, sizing, animation, drag/drop）。 &lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;这意味着你可用最小的代码来做各种各样的事情，这里仅仅是一个简单的例子（完整的列表在&lt;a href="http://www.extjs.com/tutorial/introduction-ext#" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #0000ff"&gt;ElementAPI&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;中）。 &lt;/p&gt;&#xD;
&lt;p&gt;继续在ExtStart.js中，在刚才我们获取好myDiv的位置中加入： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_679124"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;myDiv.highlight();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //黄色高亮显示然后渐退&lt;br /&gt;myDiv.addClass('red');&amp;nbsp; // 添加自定义CSS类 (在ExtStart.css定义)&lt;br /&gt;myDiv.center();&amp;nbsp;&amp;nbsp; //在视图中将元素居中&lt;br /&gt;myDiv.setOpacity(.25);&amp;nbsp; // 使元素半透明&lt;/div&gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;myDiv.highlight();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code &gt;//黄色高亮显示然后渐退 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;myDiv.addClass(&lt;/code&gt;&lt;code &gt;'red'&lt;/code&gt;&lt;code &gt;);&amp;nbsp; &lt;/code&gt;&lt;code &gt;// 添加自定义CSS类 (在ExtStart.css定义) &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;myDiv.center();&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code &gt;//在视图中将元素居中 &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;myDiv.setOpacity(.25);&amp;nbsp; &lt;/code&gt;&lt;code &gt;// 使元素半透明&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;strong&gt;获取多个DOM的节点&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;通常情况下，不能由ID获取多个DOM的节点，有可能因为没设置ID,或者你不知道ID,又或者直接用ID方式引用有太多元素了。这种情况下，你会不用ID来作为获取元素的依据，可能会用属性（attribute）或CSS Classname代替。基于以上的原因，Ext引入了一个功能异常强大的Dom Selector库，叫做&lt;a href="http://www.extjs.com/tutorial/introduction-ext#" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #0000ff"&gt;DomQuery&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;。 &lt;/p&gt;&#xD;
&lt;p&gt;DomQuery可作为单独的库使用，但常用于Ext，你可以在上下文环境中（Context）获取多个元素，然后通过Element接口调用。幸运的是，Element对象本身便有&lt;a href="http://www.extjs.com/tutorial/introduction-ext#" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #0000ff"&gt;Element.selcect&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;的方法来实现查询，即内部调用DomQuery选取元素。这个简单的例子中，ExtStart.htm包含若干段落（ &lt;/p&gt;&#xD;
&lt;p&gt;标签），没有一个是有ID的，而你想轻松地通过一次操作马上获取每一段，全体执行它们的动作，可以这样做： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_610596"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;// 每段高亮显示Ext.select('p').highlight();&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;DomQuery的选取参数是一段较长的数组，其中包括W3C CSS3 Dom选取器、基本XPath、HTML属性和更多，请参阅&lt;a href="http://www.extjs.com/tutorial/introduction-ext#" target="_blank"&gt;&lt;u&gt;&lt;span style="color: #0000ff"&gt;DomQuery API文档&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;以了解这功能强大的库的细节。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;响应事件&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;到这范例为止，我们所写的代码都是放在onReady中，即当页面加载后总会立即执行，功能较单一&amp;#8212;&amp;#8212;这样的话，你便知道，如何响应某个动作或事件来执行你希望做的事情，做法是，先分配一个function，再定义一个event handler事件处理器来响应。我们由这个简单的范例开始，打开ExtStart.htm，编辑下列的代码： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_684591"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;Ext.onReady(function() {&lt;br /&gt;Ext.get('myButton').on('click', function(){&lt;br /&gt;alert("You clicked the button");});});&lt;/div&gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;加载好页面，代码依然会执行，不过区别是，包含alert()的function是已定义好的，但它不会立即地被执行，是分配到按钮的单击事件中。用浅显的文字解释，就是：获取ID为'myDottom'元素的引用，监听任何发生元素被单击的情况，并分配一个function,以准备任何单击元素的情况。 &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;正路来说，Element.select也能做同样的事情，即作用在获取一组元素上。下一例中，演示了页面中的某一段落被单击后，便有弹出窗口： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_571370"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Ext.onReady(&lt;/code&gt;&lt;code &gt;function&lt;/code&gt;&lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Ext.select(&lt;/code&gt;&lt;code &gt;'p'&lt;/code&gt;&lt;code &gt;).on(&lt;/code&gt;&lt;code &gt;'click'&lt;/code&gt;&lt;code &gt;, &lt;/code&gt;&lt;code &gt;function&lt;/code&gt;&lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;"You clicked a paragraph"&lt;/code&gt;&lt;code &gt;);});});&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;这两个例子中，事件处理的function均是简单几句，没有函数的名称，这种类型函数称为&amp;#8220;匿名函数（anonymous function）&amp;#8221;，即是没有名的的函数。你也可以分配一个有名字的event handler,这对于代码的重用或多个事件很有用。下一例等效于上一例： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_47524"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Ext.onReady(&lt;/code&gt;&lt;code &gt;function&lt;/code&gt;&lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;paragraphClicked = &lt;/code&gt;&lt;code &gt;function&lt;/code&gt;&lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;code &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;span  style="margin-left: 56px! important"&gt;&lt;code &gt;alert(&lt;/code&gt;&lt;code &gt;"You clicked a paragraph"&lt;/code&gt;&lt;code &gt;);} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Ext.select(&lt;/code&gt;&lt;code &gt;'p'&lt;/code&gt;&lt;code &gt;).on(&lt;/code&gt;&lt;code &gt;'click'&lt;/code&gt;&lt;code &gt;, paragraphClicked);});&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;到目前为止，我们已经知道如何执行某个动作。但当事件触发时，我们如何得知这个event handler执行时是作用在哪一个特定的元素上呢？要明确这一点非常简单，&lt;u&gt;&lt;span style="color: #0000ff"&gt;Element.on&lt;/span&gt;&lt;/u&gt;方法传入到even handler的function中（我们这里先讨论第一个参数，不过你应该浏览API文档以了解even handler更多的细节）。在我们之前的例子中，function是忽略这些参数的，到这里可有少许的改变，&amp;#8212;&amp;#8212;我们在功能上提供了更深层次的控制。必须先说明的是，这实际上是Ext的事件对象（event object）,一个跨浏览器和拥有更多控制的事件。例如，可以用下列的语句，恢复这个事件的指定的DOM节点： &lt;/p&gt;&#xD;
&lt;div  id="highlighter_628308"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;code &gt;1.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Ext.onReady(&lt;/code&gt;&lt;code &gt;function&lt;/code&gt;&lt;code &gt;() { &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;2.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;var&lt;/code&gt; &lt;code &gt;paragraphClicked = &lt;/code&gt;&lt;code &gt;function&lt;/code&gt;&lt;code &gt;(e)&amp;nbsp; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;3.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;{Ext.get(e.target).highlight();} &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;code &gt;4.&lt;/code&gt;&lt;span &gt;&lt;span  style="margin-left: 0px! important"&gt;&lt;code &gt;Ext.select(&lt;/code&gt;&lt;code &gt;'p'&lt;/code&gt;&lt;code &gt;).on(&lt;/code&gt;&lt;code &gt;'click'&lt;/code&gt;&lt;code &gt;, paragraphClicked);});&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;注意指定的是DOM节点，所以我们首先将其恢复成为适当的元素，然后执行欲完成的事件，这个例子中，我们看见段落是高亮显示的。 &lt;/p&gt;&lt;img src="http://www.cnblogs.com/leochu2008/aggbug/1743528.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/leochu2008/archive/2010/05/25/1743528.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/leochu2008/archive/2010/04/25/1720761.html</id><title type="text">ASP.NET 压缩和解压缩</title><summary type="text">/// &amp;lt;summary&amp;gt; /// 压缩文件 /// &amp;lt;/summary&amp;gt; /// &amp;lt;param name="DFilePath"&amp;gt;需要压缩的文件夹或者单个文件&amp;lt;/param&amp;gt; /// &amp;lt;param name="DRARName"&amp;gt;生成压缩文件的文件名&amp;lt;/param&amp;gt; /// &amp;lt;param name="DRARPath"...</summary><published>2010-04-25T13:35:00Z</published><updated>2010-04-25T13:35:00Z</updated><author><name>朱胜</name><uri>http://www.cnblogs.com/leochu2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/leochu2008/archive/2010/04/25/1720761.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/leochu2008/archive/2010/04/25/1720761.html"/><content type="html">&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 压缩文件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="DFilePath"&amp;gt;需要压缩的文件夹或者单个文件&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="DRARName"&amp;gt;生成压缩文件的文件名&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="DRARPath"&amp;gt;生成压缩文件保存路径&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected bool RAR(string DFilePath, string DRARName, string DRARPath)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String the_rar;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RegistryKey the_Reg;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Object the_Obj;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String the_Info;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProcessStartInfo the_StartInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Process the_Process;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\Shell\Open\Command");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Obj = the_Reg.GetValue("");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_rar = the_Obj.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Reg.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_rar = the_rar.Substring(1, the_rar.Length - 7);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Info = " a&amp;nbsp;&amp;nbsp;&amp;nbsp; " + " " + DRARName + "&amp;nbsp; " + DFilePath; //命令 + 压缩后文件名 + 被压缩的文件或者路径&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_StartInfo = new ProcessStartInfo();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_StartInfo.FileName = the_rar;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_StartInfo.Arguments = the_Info;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_StartInfo.WorkingDirectory = DRARPath; //RaR文件的存放目录。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Process = new Process();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Process.StartInfo = the_StartInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Process.Start();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(ex.Message);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;/// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 解压缩到指定文件夹 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="RARFilePath"&amp;gt;压缩文件存在的目录 &amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="RARFileName"&amp;gt;压缩文件名称 &amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="UnRARFilePath"&amp;gt;解压到文件夹&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected bool UnRAR(string RARFilePath, string RARFileName, string UnRARFilePath)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //解压缩&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String the_rar;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RegistryKey the_Reg;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Object the_Obj;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String the_Info;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProcessStartInfo the_StartInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Process the_Process;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRar.exe\Shell\Open\Command");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Obj = the_Reg.GetValue("");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_rar = the_Obj.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Reg.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_rar = the_rar.Substring(1, the_rar.Length - 7);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Info = @" X " + " " + RARFilePath + RARFileName + " " + UnRARFilePath;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_StartInfo = new ProcessStartInfo();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_StartInfo.FileName = the_rar;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_StartInfo.Arguments = the_Info;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Process = new Process();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Process.StartInfo = the_StartInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the_Process.Start();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(ex.Message);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;img src="http://www.cnblogs.com/leochu2008/aggbug/1720761.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/leochu2008/archive/2010/04/25/1720761.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
