<?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>feed.cnblogs.com</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为指令参数（如下例中的”2D-Position”），交互方式参数如果是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 class="title_txt"&gt;&lt;cite class="fav_csdnstylebykimi"&gt;&lt;/cite&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;p class="blogstory" 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;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;前台代码：有两种方式请求：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;1. 方法一：&lt;/p&gt;&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;&lt;p&gt;2. 方法二：&lt;/p&gt;&lt;p&gt;（1）首先引入一个脚本文件CrossDomainAjax.js代码如下：&lt;/p&gt;&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;&lt;p&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("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;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 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;&lt;p&gt;(2) 在需要跨域请求的页面引入该文件&lt;/p&gt;&lt;p&gt;并在Ready函数中执行SetCrossDomain();并添加一下代码：&lt;/p&gt;&lt;p&gt;&amp;nbsp;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;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;后台代码：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;PHP：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; $json = "xxxxxxxxxxxxxxxxxxxxxxx";//你的json数据&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;$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;&lt;p&gt;&amp;nbsp; else&lt;/p&gt;&lt;p&gt;&amp;nbsp;{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; $result = $json;&lt;/p&gt;&lt;p&gt;&amp;nbsp;}&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;echo $result;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;ASP.NET:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 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;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 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;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 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;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;通过以上处理，在需要跨域请求时使用方法一的ScriptTagProxy或方法二的scriptTag: true会在请求加上callback参数，后台自动处理，如果没有跨域，后台也会自动识别。&lt;/p&gt;&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 class="articalContent"&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;&lt;p class="articalContent"&gt;jQuery对DOM的事件触发具有冒泡特性。有时利用这一特性可以减少重复代码，但有时候我们又不希望事件冒泡。这个时候就要阻止 jQuery.Event冒泡。&amp;nbsp;&lt;wbr&gt;&lt;/p&gt;&lt;p class="articalContent"&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;&lt;p class="articalContent"&gt;jQuery.Event提供了一个非常简单的方法来阻止事件冒泡：&lt;strong&gt;event.stopPropagation();&lt;/strong&gt;&amp;nbsp;&lt;wbr&gt;&lt;/p&gt;&lt;div class="articalContent"&gt;&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;&lt;p class="articalContent"&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;&lt;p class="articalContent"&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;&lt;p class="articalContent"&gt;&lt;span&gt;})&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&lt;div class="articalContent"&gt;$("p").click(function(event){ event.stopPropagation(); // do something })&lt;/div&gt;&lt;div class="articalContent"&gt;&amp;nbsp;&lt;wbr&gt; &lt;/div&gt;&lt;p class="articalContent"&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;&lt;div class="articalContent"&gt;&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;&lt;p class="articalContent"&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;&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;&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;&lt;p&gt;&lt;span&gt;});&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt; &lt;/p&gt;&lt;div class="articalContent"&gt;$("p").live("click", function(){ $(this).after("Another paragraph!"); return false; });另外 JavaScript 阻止冒泡&amp;nbsp;&lt;wbr&gt;&lt;/div&gt;&lt;p class="articalContent"&gt;　阻止冒泡事件的方法有两种，第一种是IE的方法，第二种是DOM方法，至于为什么要分为两种方法去讨论之，这里就不做讨论了，总之是浏览器一些蹩脚的问题，好了废话不说了，直接贴代码了：&amp;nbsp;&lt;wbr&gt;&lt;/p&gt;&lt;div class="articalContent"&gt;&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;&lt;p class="articalContent"&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;&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;&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;&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;&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;&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;&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;&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;&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;&lt;div class="articalContent"&gt; //阻止冒泡事件 function stopBubble(e) { if (e &amp;amp;&amp;amp; e.stopPropagation) {//非IE e.stopPropagation(); } else {//IE window.event.cancelBubble = true; } }&lt;/div&gt;&lt;div class="articalContent"&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;&lt;p class="articalContent"&gt;（div-&amp;gt;body-&amp;gt;document-&amp;gt;html）所以div.onclick事件就会被覆盖掉，也就不会执行了，解决的方案其实也是很简单的哦，就是在执行div.onclick的时候阻止冒泡事件就好了，那怎么阻止呢，就调用上面的函数就ok了！哈哈！&lt;br /&gt;ps：在介绍一下阻止浏览器默认行为的方法，大同小异，这里就不再赘述了。&lt;/p&gt;&lt;p class="articalContent"&gt;&amp;nbsp;&lt;wbr&gt;&lt;/p&gt;&lt;div class="articalContent"&gt;&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;&lt;p class="articalContent"&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;&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;&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;&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;&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;&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;&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;&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;&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;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div class="cnt"&gt;Ext.get('expand').on('click', function() {&lt;br /&gt;grid.getView().expandAllGroups();&lt;br /&gt;});&lt;/div&gt;&lt;div class="cnt"&gt;&lt;br /&gt;Ext.get('collapse').on('click', function() {&lt;br /&gt;grid.getView().collapseAllGroups();&lt;br /&gt;});&lt;/div&gt;&lt;div class="cnt"&gt;&lt;br /&gt;Ext.get('toggle').on('click', function() {&lt;br /&gt;grid.getView().toggleAllGroups();&lt;br /&gt;});&lt;/div&gt;&lt;div class="cnt"&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">&lt;html&gt; &lt;head&gt; &lt;title&gt;JS获取上传文件的绝对路径，兼容IE和FF&lt;/title&gt; &lt;script type="text/javascript"&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 /**//// &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 比起略为沉闷的“HelloWolrd”消息窗口，我们做少许变化，前面我们写的代码是，单击某个段落便会高亮显示，现在是单击段落，在消息窗口中显示段落内容出来。在上面的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="text">除了我们已经讨论过的核心Javascrīpt库，现在的Ext亦包括了一系列的最前端的JavaScirptUI组件库。文本以一个最常用的widget为例子，作简单的介绍。 MessageBox 比起略为沉闷的“HelloWolrd”消息窗口，我们做少许变化，前面我们写的代码是，单击某个段落便会高亮显示，现在是单击段落，在消息窗口中显示段落内容出来。在上面的paragraphC...</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="text">无论你是Ext库的新手，抑或是想了解Ext的人，本篇文章的内容都适合你。本文将简单地介绍Ext的几个基本概念，和如何快速地做出一个动态的页面并运行起来，假设读者已具备了一些JavaScript经验和初级了解HTML Dom。否则的话，请从阅读初学JavaScript资源开始。 下载Ext如果你未曾下载过，那应从这里下载最新版本的Ext http://extjs.com/downloads。 针对你...</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">/// &lt;summary&gt; /// 压缩文件 /// &lt;/summary&gt; /// &lt;param name="DFilePath"&gt;需要压缩的文件夹或者单个文件&lt;/param&gt; /// &lt;param name="DRARName"&gt;生成压缩文件的文件名&lt;/param&gt; /// &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="text">/// &lt;summary&gt; /// 压缩文件 /// &lt;/summary&gt; /// &lt;param name="DFilePath"&gt;需要压缩的文件夹或者单个文件&lt;/param&gt; /// &lt;param name="DRARName"&gt;生成压缩文件的文件名&lt;/param&gt; /// &lt;param name="DRARPath"...</content></entry></feed>
