﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-becket-文章分类-web前端开发</title><link>http://www.blogjava.net/ebecket/category/41084.html</link><description>一路风景我一路走着,不管多么疲惫,因为一路的风景很美.......
</description><language>zh-cn</language><lastBuildDate>Fri, 04 Dec 2009 10:01:16 GMT</lastBuildDate><pubDate>Fri, 04 Dec 2009 10:01:16 GMT</pubDate><ttl>60</ttl><item><title>JQuery插件汇总</title><link>http://www.blogjava.net/ebecket/articles/304811.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Fri, 04 Dec 2009 09:52:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/304811.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/304811.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/304811.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/304811.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/304811.html</trackback:ping><description><![CDATA[<a href="http://www.cksky.cn/archives/850">jQuery常用WEB控件</a><br />
<br />
http://www.cksky.cn/archives/715<br />
<br />
http://www.cksky.cn/archives/738<br />
<br />
http://www.cksky.cn/archives/763<br />
<br />
http://www.cksky.cn/archives/786<br />
<br />
http://www.cksky.cn/archives/806<br />
<br />
http://www.cksky.cn/archives/828<br />
<br />
http://www.cksky.cn/archives/850<br />
<br />
<br />
editable-jquery-plugin<br />
http://arashkarimzadeh.com/index.php/jquery/7-editable-jquery-plugin.html<br />
<br />
tab<br />
http://www.stilbuero.de/jquery/tabs/<br />
<br />
<a class="postTitle2" id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/Terrylee/archive/2007/12/09/the-ultimate-jquery-plugin-list.html">强烈推荐：240多个jQuery插件</a><br />
http://blog.cnw.com.cn/index.php/53599/viewspace-100347<br />
<br />
<h1 class="postTitle"><a class="postTitle2" id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/Terrylee/archive/2007/12/09/the-ultimate-jquery-plugin-list.html">强烈推荐：240多个jQuery插件</a></h1>
<div class="clear"></div>
<div class="postBody">
<h2>概述</h2>
<p>jQuery 是继 prototype 之后又一个优秀的 Javascript. 框架。其宗旨是—写更少的代码,做更多的事情。它是轻量级的 js 库(压缩后只有21k) ，这是其它的 js 库所不<a href="http://images.cnblogs.com/cnblogs_com/Terrylee/WindowsLiveWriter/240jQuery_128F5/jquery_2.gif"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="117" alt="jquery" src="http://images.cnblogs.com/cnblogs_com/Terrylee/WindowsLiveWriter/240jQuery_128F5/jquery_thumb.gif" width="164" align="right" border="0" /></a>及的，它兼容 CSS3，还兼容各种浏览器（IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+）。 jQuery 是一个快速的，简洁的 javaScript. 库，使用户能更方便地处理 HTML documents、events、实现动画效果，并且方便地为<a onclick="javascript:tagshow(event, '%CD%F8%D5%BE');" href="javascript:;" target="_self"><u><strong>网站</strong></u></a>提供 AJAX 交互。 jQuery 还有一个比较大的优势是，它的文档说明很全，而且各种应用也说得很详细，同时还有许多成熟的插件可供选择。 jQuery 能够使用户的 html 页保持代码和 html 内容分离，也就是说，不用再在 html 里面插入一堆js来调用命令了，只需定义 id 即可。今天在<a title="Logo Kollermedia.at" href="http://www.kollermedia.at/">Kollermedia.at</a>上发现了一篇JQuery插件列表的<a href="http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/" target="_blank">文章</a>，特推荐如下。</p>
<h2>文件上传(File upload)<a href="http://images.cnblogs.com/cnblogs_com/Terrylee/WindowsLiveWriter/240jQuery_128F5/JQuery_001_6.gif"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="165" alt="JQuery_001" src="http://images.cnblogs.com/cnblogs_com/Terrylee/WindowsLiveWriter/240jQuery_128F5/JQuery_001_thumb_2.gif" width="396" align="right" border="0" /></a></h2>
<p><a href="http://www.phpletter.com/Demo/AjaxFileUpload-Demo/">Ajax File Upload</a>.<br />
<a href="http://www.pixeline.be/experiments/jqUploader/">jQUploader</a>.<br />
<a href="http://www.fyneworks.com/jquery/multiple-file-upload/">Multiple File Upload plugin</a>.&nbsp;<br />
<a href="http://www.appelsiini.net/projects/filestyle">jQuery File Style</a>.<br />
<a href="http://jquery.com/plugins/project/InputFileCSS">Styling an input type file</a>.<br />
<a href="http://digitalbush.com/projects/progress-bar-plugin">Progress Bar Plugin</a>.</p>
<h2>表单验证(Form. Validation)</h2>
<p><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation</a>.<br />
<a href="http://blog.cnw.com.cn/index.php/autohelp">Auto Help</a>.<br />
<a href="http://www.willjessup.com/sandbox/jquery/form_validator/form_validate.html">Simple jQuery form. validation</a>.<br />
<a href="http://letmehaveblog.blogspot.com/2007/08/easy-client-side-web-forms-validations.html">jQuery XAV - form. validations</a>.<br />
<a href="http://itgroup.com.ph/alphanumeric/">jQuery AlphaNumeric</a>.<br />
<a href="http://digitalbush.com/projects/masked-input-plugin">Masked Input</a>.<br />
<a href="http://www.dennydotnet.com/post/TypeWatch-jQuery-Plugin.aspx">TypeWatch Plugin</a>.<br />
<a href="http://jquery.com/plugins/project/TextLimiter">Text limiter for form. fields</a>.<br />
<a href="http://www.shawngo.com/gafyd/index.html">Ajax Username Check with jQuery</a>.
<h2>表单－选取框(Form. - Select Box stuff)</h2>
<p><a href="http://jquery.sanchezsalvador.com/page/jquerycombobox.aspx">jQuery Combobox</a>.<br />
<a href="http://www.ajaxray.com/blog/2007/11/08/jquery-controlled-dependent-or-cascading-select-list-2/">jQuery controlled dependent (or Cascadign) Select List</a>.<br />
<a href="http://code.google.com/p/jqmultiselects/">Multiple Selects</a>.<br />
<a href="http://www.texotela.co.uk/code/jquery/select/">Select box manipulation</a>.<br />
<a href="http://code.google.com/p/jqueryselectcombo/">Select Combo Plugin</a>.<br />
<a href="http://www.msxhost.com/jquery/linked-selects/json/%20target=">jQuery - LinkedSelect</a><br />
<a href="http://remysharp.com/2007/09/18/auto-populate-multiple-select-boxes/">Auto-populate multiple select boxes</a>.<br />
<a href="http://www.sitespotting.it/esempi/002/">Choose Plugin (Select Replacement)</a>.
<h2>表单基本、输入框、选择框等(Form. Basics, Input Fields, Checkboxes etc.)</h2>
<p><a href="http://www.malsup.com/jquery/form/">jQuery Form. Plugin</a>.<br />
<a href="http://code.handlino.com/wiki/jquery-form">jQuery-Form</a>.<br />
<a href="http://envero.org/jlook/">jLook Nice Forms</a>.<br />
<a href="http://www.whitespace-creative.com/jquery/jNice/">jNice</a>.<br />
<a href="http://www.brainfault.com/2007/07/07/pin-plugin-reloaded/">Ping Plugin</a>.<br />
<a href="http://grzegorz.frydrychowicz.net/jquery_toggleformtext/">Toggle Form. Text</a>.<br />
<a href="http://thoughts.kuzemchak.net/entry/toggleval-for-jquery/">ToggleVal</a>.<br />
<a href="http://www.pengoworks.com/workshop/jquery/field.plugin.htm">jQuery Field Plugin</a>.<br />
<a href="http://code.befruit.com/">jQuery Form&#8217;n Field plugin</a>.<br />
<a href="http://www.texotela.co.uk/code/jquery/checkboxes/">jQuery Checkbox manipulation</a>.<br />
<a href="http://www.alcoholwang.cn/jquery/jTaggingDemo.htm">jTagging</a>.<br />
<a href="http://code.google.com/p/labelcheck/">jQuery labelcheck</a>.<br />
<a href="http://scott.sauyet.com/thoughts/archives/2007/03/31/overlabel-with-jquery/">Overlabel</a>.<br />
<a href="http://blog.amicoimmaginario.it/2007/08/28/jquery-plugin-3-state-radio-buttons/">3 state radio buttons</a>.<br />
<a href="http://sanisoft-demo.com/jquery/plugins/shiftcheckbox/">ShiftCheckbox jQuery Plugin</a>.<br />
<a href="http://digitalbush.com/projects/watermark-input-plugin">Watermark Input</a>.<br />
<a href="http://kawika.org/jquery/checkbox/">jQuery Checkbox (checkboxes with imags)</a>.<br />
<a href="http://www.softwareunity.com/sandbox/jqueryspinbtn/">jQuery SpinButton Control</a>.<br />
<a href="http://www.phpletter.com/form_builder/demo.html">jQuery Ajax Form. Builder</a>.<br />
<a href="http://www.texotela.co.uk/code/jquery/focusfields/">jQuery Focus Fields</a>.<br />
<a href="http://home.iprimus.com.au/kbwood/jquery/timeEntry.html">jQuery Time Entry</a>.
<h2>时间、日期和颜色选取(Time, Date and Color Picker)</h2>
<p><a href="http://marcgrabanski.com/code/ui-datepicker/">jQuery UI Datepicker</a>.<br />
<a href="http://kelvinluck.com/assets/jquery/datePicker/">jQuery date picker plugin</a>.<br />
<a href="http://code.google.com/p/jquery-timepicker/">jQuery Time Picker</a>.<br />
<a href="http://www.texotela.co.uk/code/jquery/timepicker/">Time Picker</a>.<br />
<a href="http://www.oakcitygraphics.com/jquery/clockpick/ClockPick.cfm">ClickPick</a>.<br />
<a href="http://labs.perifer.se/timedatepicker/">TimePicker</a>.<br />
<a href="http://acko.net/dev/farbtastic">Farbtastic jQuery Color Picker Plugin</a>.<br />
<a href="http://www.intelliance.fr/jquery/color_picker/">Color Picker by intelliance.fr</a>.
<h2>投票插件(Rating Plugins)</h2>
<p><a href="http://www.phpletter.com/Demo/Jquery-Star-Rating-Plugin/#">jQuery Star Rating Plugin</a>.<br />
<a href="http://www.m3nt0r.de/devel/raterDemo/">jQuery Star Rater</a>.<br />
<a href="http://riderdesign.com/articles/displayarticle.aspx?articleid=21">Content rater with asp.net, ajax and jQuery</a>.<br />
<a href="http://www.learningjquery.com/2007/05/half-star-rating-plugin">Half-Star Rating Plugin</a>.
<h2>搜索插件(Search Plugins)</h2>
<p><a href="http://www.vulgarisoip.com/2007/08/06/jquerysuggest-11/">jQuery Suggest</a>.<br />
<a href="http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/">jQuery Autocomplete</a>.<br />
<a href="http://www.pengoworks.com/workshop/jquery/autocomplete.htm">jQuery Autocomplete Mod</a>.<br />
<a href="http://www.ajaxdaddy.com/demo-jquery-autocomplete.html">jQuery Autocomplete by AjaxDaddy</a>.<br />
<a href="http://dev.reach1to1.net/saurabh/jplugins/autocomplete/">jQuery Autocomplete Plugin with HTML formatting</a>.<br />
<a href="http://interface.eyecon.ro/docs/autocomplete">jQuery Autocompleter</a>.<br />
<a href="http://nodstrum.com/2007/09/19/autocompleter/">AutoCompleter (Tutorial with PHP&amp;MySQL)</a>.<br />
<a href="http://rikrikrik.com/jquery/quicksearch/">quick Search jQuery Plugin</a>.
<h2>编辑器(Inline Edit &amp; Editors)<a href="http://images.cnblogs.com/cnblogs_com/Terrylee/WindowsLiveWriter/240jQuery_128F5/JQuery_002_2.gif"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="193" alt="JQuery_002" src="http://images.cnblogs.com/cnblogs_com/Terrylee/WindowsLiveWriter/240jQuery_128F5/JQuery_002_thumb.gif" width="400" align="right" border="0" /></a></h2>
<p><a href="http://www.jaysalvat.com/jquery/jtageditor/">jTagEditor</a>.<br />
<a href="http://demo.wymeditor.org/demo.html">WYMeditor</a>.<br />
<a href="http://garage.pimentech.net/scripts_doc_jquery_jframe/">jQuery jFrame</a>.<br />
<a href="http://www.appelsiini.net/projects/jeditable">J<font style="background-color: #ffff00">editable</font> - edit in place plugin for jQuery</a>.<br />
<a href="http://blog.cnw.com.cn/index.php/editable">jQuery <font style="background-color: #ffff00">editable</font></a>.<br />
<a href="http://www.jdempster.com/category/jquery/disableTextSelect/">jQuery Disable Text Select Plugin</a>.<br />
<a href="http://15daysofjquery.com/edit-in-place-with-ajax-using-jquery-javascript-library/15/">Edit in Place with Ajax using jQuery</a>.<br />
<a href="http://davehauenstein.com/blog/archives/28">jQuery Plugin - Another In-Place Editor</a>.<br />
<a href="http://dev.iceburg.net/jquery/tableEditor/demo.php">TableEditor</a>.<br />
<a href="http://joshhundley.com/teditable-in-place-editing-for-tables/">t<font style="background-color: #ffff00">Editable</font> - in place table editing for jQuery</a>.
<h2>多媒体、视频、Flash等(Audio, Video, Flash, SVG, etc)</h2>
<p><a href="http://www.contentwithstructure.com/extras/jmedia">jMedia - accessible multi-media embedding</a>.<br />
<a href="http://sourceforge.net/projects/jbedit/">JBEdit - Ajax online Video Editor</a>.<br />
<a href="http://www.sean-o.com/jquery/jmp3/">jQuery MP3 Plugin</a>.<br />
<a href="http://malsup.com/jquery/media/">jQuery Media Plugin</a>.<br />
<a href="http://jquery.lukelutman.com/plugins/flash/index.html">jQuery Flash Plugin</a>.<br />
<a href="http://www.solitude.dk/archives/embedquicktime/">Embed QuickTime</a>.<br />
<a href="http://keith-wood.name/svg.html">SVG Integration</a>.
<h2>图片(Photos/Images/Galleries)</h2>
<p><a href="http://jquery.com/demo/thickbox/">ThickBox</a>.<br />
<a href="http://leandrovieira.com/projects/jquery/lightbox/">jQuery lightBox plugin</a>.<br />
<a href="http://blog.joshuaeichorn.com/archives/2007/01/11/jquery-image-strip/">jQuery Image Strip</a>.<br />
<a href="http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html">jQuery slideViewer</a>.<br />
<a href="http://benjaminsterling.com/2007/09/09/jquery-jqgalscroll-photo-gallery/">jQuery jqGalScroll 2.0</a>.<br />
<a href="http://benjaminsterling.com/2007/10/02/jquery-jqgalviewii-photo-gallery/">jQuery - jqGalViewII</a>.<br />
<a href="http://benjaminsterling.com/2007/10/21/jqgalviewiii-proof-of-concept/">jQuery - jqGalViewIII</a>.<br />
<a href="http://opiefoto.com/articles/photoslider">jQuery Photo Slider</a>.<br />
<a href="http://joanpiedra.com/jquery/thumbs/">jQuery Thumbs - easily create thumbnails</a>.<br />
<a href="http://www.texotela.co.uk/code/jquery/jQIR/">jQuery jQIR Image Replacement</a>.<br />
<a href="http://www.gmarwaha.com/jquery/jcarousellite/index.php#what">jCarousel Lite</a>.<br />
<a href="http://projects.sevir.org/storage/jpanview/index.html">jQPanView</a>.<br />
<a href="http://sorgalla.com/projects/jcarousel/#Examples">jCarousel</a>.<br />
<a href="http://www.intelliance.fr/jquery/imagebox/">Interface Imagebox</a>.<br />
<a href="http://www.getintothis.com/blog/2006/10/12/image-gallery-using-jquery-interface-reflections/">Image Gallery using jQuery, Interface &amp; Reflactions</a>.<br />
<a href="http://realazy.org/lab/jquery/j-gallery/">simple jQuery Gallery</a>.<br />
<a href="http://chicagosocial.com/gallery/">jQuery Gallery Module</a>.<br />
<a href="http://www.eogallery.com/">EO Gallery</a>.<br />
<a href="http://flesler.blogspot.com/search/label/jQuery.ScrollShow">jQuery ScrollShow</a>.<br />
<a href="http://www.malsup.com/jquery/cycle/">jQuery Cycle Plugin</a>.<br />
<a href="http://www.projectatomic.com/en/flickr.htm">jQuery Flickr</a>.<br />
<a href="http://www.appelsiini.net/2007/9/lazy-load-images-jquery-plugin">jQuery Lazy Load Images Plugin</a>.<br />
<a href="http://www.sunsean.com/zoomi/">Zoomi - Zoomable Thumbnails</a>.<br />
<a href="http://remysharp.com/2007/03/19/a-few-more-jquery-plugins-crop-labelover-and-pluck/#crop">jQuery Crop - crop any image on the fly</a>.<br />
<a href="http://jquery.com/plugins/project/reflection">Image Reflection</a>.
<h2>Google地图（Google Map）</h2>
<p><a href="http://blog.cnw.com.cn/index.php/googlemaps">jQuery Plugin googlemaps</a>.<br />
<a href="http://code.google.com/p/jmaps/">jMaps jQuery Maps Framework</a>.<br />
<a href="http://projects.sevir.org/storage/jqmaps/index.html">jQmaps</a>.<br />
<a href="http://olbertz.de/jquery/googlemap.html#">jQuery &amp; Google Maps</a>.<br />
<a href="http://snippets.dzone.com/posts/show/4361">jQuery Maps Interface forr Google and Yahoo maps</a>.<br />
<a href="http://webrocket.ulmb.com/jmaps/">jQuery J Maps - by Tane Piper</a>.
<h2>游戏(Games)</h2>
<p><a href="http://fmarcia.info/jquery/tetris/tetris.html">Tetris with jQuery</a>.<br />
<a href="http://64squar.es/">jQuery Chess</a>.<br />
<a href="http://www.bennadel.com/blog/623-jQuery-Demo-Mad-Libs-Word-Game.htm">Mad Libs Word Game</a>.<br />
<a href="http://www.alexatnet.com/node/68">jQuery Puzzle</a>.<br />
<a href="http://www.willjessup.com/sandbox/jquery/solar_system/rotator.html">jQuery Solar System (not a game but awesome jQuery Stuff)</a>.
<h2>表格等(Tables, Grids etc.)</h2>
<p><a href="http://docs.jquery.com/Plugins/Tablesorter">UI/Tablesorter</a>.<a href="http://images.cnblogs.com/cnblogs_com/Terrylee/WindowsLiveWriter/240jQuery_128F5/JQuery_003_2.gif"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="143" alt="JQuery_003" src="http://images.cnblogs.com/cnblogs_com/Terrylee/WindowsLiveWriter/240jQuery_128F5/JQuery_003_thumb.gif" width="400" align="right" border="0" /></a><br />
<a href="http://www.reconstrukt.com/ingrid/">jQuery ingrid</a>.<br />
<a href="http://blog.cnw.com.cn/index.php/p=13">jQuery Grid Plugin</a>.<br />
<a href="http://ideamill.synaptrixgroup.com/jquery/tablefilter/tabletest.htm">Table Filter - awesome!</a>.<br />
<a href="http://dev.iceburg.net/jquery/tableEditor/demo.php">TableEditor</a>.<br />
<a href="http://www.hanpau.com/jquery/unobtrusivetreetable.php">jQuery Tree Tables</a>.<br />
<a href="http://www.javascripttoolbox.com/jquery/#expandablerows">Expandable &#8220;Detail&#8221; Table Rows</a>.<br />
<a href="http://www.remotesynthesis.com/blog/index.cfm/2007/9/25/Sortable-Table-ColdFusion-Custom-Tag-with-jQueryUI">Sortable Table ColdFusion Costum Tag with jQuery UI</a>.<br />
<a href="http://flesler.blogspot.com/2007/10/jquerybubble.html">jQuery Bubble</a>.<br />
<a href="http://tablesorter.com/docs/">TableSorter</a>.<br />
<a href="http://www.webtoolkit.info/demo/jquery/scrollable/demo.html">Scrollable HTML Table</a>.<br />
<a href="http://p.sohei.org/stuff/jquery/columnmanager/demo/demo.html">jQuery column Manager Plugin</a>.<br />
<a href="http://p.sohei.org/stuff/jquery/tablehover/demo/demo.html">jQuery tableHover Plugin</a>.<br />
<a href="http://p.sohei.org/stuff/jquery/columnhover/demo/demo.html">jQuery columnHover Plugin</a>.<br />
<a href="http://makoomba.altervista.org/grid/">jQuery Grid</a>.<br />
<a href="http://motherrussia.polyester.se/jquery-plugins/tablesorter/">TableSorter plugin for jQuery</a>.<br />
<a href="http://joshhundley.com/teditable-in-place-editing-for-tables/">t<font style="background-color: #ffff00">Editable</font> - in place table editing for jQuery</a>.<br />
<a href="http://www.hovinne.com/dev/jquery/chartotable/">jQuery charToTable Plugin</a>.<br />
<a href="http://www.ita.es/jquery/jquery.grid.columnSizing.htm">jQuery Grid Column Sizing</a>.<br />
<a href="http://www.ita.es/jquery/jquery.grid.rowSizing.htm">jQuery Grid Row Sizing</a>.
<h2>统计图(Charts, Presentation etc.)</h2>
<p><a href="http://worcesterwideweb.com/2007/06/04/jquery-wizard-plugin/">jQuery Wizard Plugin</a>.<br />
<a href="http://www.reach1to1.com/sandbox/jquery/jqchart/">jQuery Chart Plugin</a>.<br />
<a href="http://ejohn.org/apps/speed/">Bar Chart</a>.
<h2>边框、圆角、背景(Border, Corners, Background)</h2>
<p><a href="http://www.malsup.com/jquery/corner/">jQuery Corner</a>.<br />
<a href="http://blue-anvil.com/archives/anti-aliased-rounded-corners-with-jquery">jQuery Curvy Corner</a>.<br />
<a href="http://dev.jquery.com/~paul/plugins/nifty/example.html">Nifty jQuery Corner</a>.<br />
<a href="http://illandril.net/jQuery/transparentCorners/">Transparent Corners</a>.<br />
<a href="http://www.methvin.com/jquery/jq-corner.html">jQuery Corner Gallery</a>.<br />
<a href="http://blog.brandonaaron.net/my-jquery-plugins/gradient/">Gradient Plugin</a>.
<h2>文字和超链接(Text and Links)</h2>
<p><a href="http://wanderinghorse.net/computing/javascript/jquery/spoilers/demo.html">jQuery Spoiler plugin</a>.<br />
<a href="http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html">Text Highlighting</a>.<br />
<a href="http://www.jdempster.com/category/jquery/disableTextSelect/">Disable Text Select Plugin</a>.<br />
<a href="http://www.texotela.co.uk/code/jquery/newsticker/">jQuery Newsticker</a>.<br />
<a href="http://www.ollicle.com/2007/jun/03/jquery_lineheight_flexible.html">Auto line-height Plugin</a>.<br />
<a href="http://agencenp.net/textgrad/textgrad.html">Textgrad - a text gradient plugin</a>.<br />
<a href="http://kawika.org/jquery/linklook/">LinkLook - a link thumbnail preview</a>.<br />
<a href="http://rikrikrik.com/jquery/pager/#examples">pager jQuery Plugin</a>.<br />
<a href="http://rikrikrik.com/jquery/shortkeys/">shortKeys jQuery Plugin</a>.<br />
<a href="http://www.ollicle.com/eg/jquery/biggerlink">jQuery Biggerlink</a>.<br />
<a href="http://troy.dyle.net/linkchecker/">jQuery Ajax Link Checker</a>.
<h2>鼠标提示（Tooltips）</h2>
<p><a href="http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/">jQuery Plugin - Tooltip</a>.<br />
<a href="http://www.codylindley.com/blogstuff/js/jtip/">jTip - The jQuery Tool Tip</a>.<br />
<a href="http://examples.learningjquery.com/62/demo/index.html#examplesection">clueTip</a>.<br />
<a href="http://edgarverle.com/BetterTip/default.cfm">BetterTip</a>.<br />
<a href="http://ioreader.com/2007/05/15/flash-tooltips-using-jquery/">Flash Tooltips using jQuery</a>.<br />
<a href="http://www.texotela.co.uk/code/jquery/tooltipdemo/">ToolTip</a>.
<h2>菜单和导航(Menus, Navigations)</h2>
<p><a href="http://stilbuero.de/jquery/tabs_3/">jQuery Tabs Plugin - awesome!</a>. [<a href="http://stilbuero.de/jquery/tabs_3/nested.html">demo nested tabs</a>.]<br />
<a href="http://blog.cutterscrossing.com/index.cfm/2007/6/15/Updated-JQuery-Nested-Tab-Set-with-Demo">another jQuery nested Tab Set example (based on jQuery Tabs Plugin)</a>.<br />
<a href="http://www.sunsean.com/idTabs/">jQuery idTabs</a>.<br />
<a href="http://jdsharp.us/jQuery/plugins/jdMenu/">jdMenu - Hierarchical Menu Plugin for jQuery</a>.<br />
<a href="http://be.twixt.us/jquery/suckerFish.php">jQuery SuckerFish Style</a>.<br />
<a href="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/">jQuery Plugin Treeview</a>.<br />
<a href="http://be.twixt.us/jquery/treeView.php">treeView Basic</a>.<br />
<a href="http://labs.activespotlight.net/jQuery/menu_demo.html">FastFind Menu</a>.<br />
<a href="http://www.getintothis.com/blog/2006/09/26/my-first-jquery-plugin-a-sliding-menu/">Sliding Menu</a>.<br />
<a href="http://blog.cnw.com.cn/index.php/p=7">Lava Lamp jQuery Menu</a>.<br />
<a href="http://icon.cat/wiki/IconDock_En#iconDock_jQuery_Plugin">jQuery iconDock</a>.<br />
<a href="http://cherne.net/brian/resources/jquery.variations.html">jVariations Control Panel</a>.<br />
<a href="http://www.trendskitchens.co.nz/jquery/contextmenu/">ContextMenu plugin</a>.<br />
<a href="http://p.sohei.org/jquery-plugins/clickmenu/">clickMenu</a>.<br />
<a href="http://www.ndesign-studio.com/blog/mac/css-dock-menu">CSS Dock Menu</a>.<br />
<a href="http://webexpose.org/2006/12/28/jquery-pop-up-menu-tutorial/">jQuery Pop-up Menu Tutorial</a>.<br />
<a href="http://www.getintothis.com/blog/2006/09/26/my-first-jquery-plugin-a-sliding-menu/">Sliding Menu</a>.</p>
<p><a title="http://stilbuero.de/jquery/tabs_3/" href="http://stilbuero.de/jquery/tabs_3/">http://stilbuero.de/jquery/tabs_3/</a></p>
<h2>幻灯、翻转等(Accordions, Slide and Toggle stuff)</h2>
<p><a href="http://bassistance.de/jquery-plugins/jquery-plugin-accordion/">jQuery Plugin Accordion</a>.<br />
<a href="http://fmarcia.info/jquery/accordion.html">jQuery Accordion Plugin Horizontal Way</a>.<br />
<a href="http://letmehaveblog.blogspot.com/2007/10/haccordion-simple-horizontal-accordion.html">haccordion - a simple horizontal accordion plugin for jQuery</a>.<br />
<a href="http://dev.portalzine.de/index?/Horizontal_Accordion--print">Horizontal Accordion by portalzine.de</a>.<br />
<a href="http://berndmatzner.de/jquery/hoveraccordion/">HoverAccordion</a>.<br />
<a href="http://fmarcia.info/jquery/accordion.html">Accordion Example from fmarcia.info</a>.<br />
<a href="http://blog.evaria.com/wp-content/themes/blogvaria/jquery/index.php">jQuery Accordion Example</a>.<br />
<a href="http://jquery.com/files/demo/dl-done.html">jQuery Demo - Expandable Sidebar Menu</a>.<br />
<a href="http://www.andreacfm.com/examples/jQpanels/">Sliding Panels for jQuery</a>.<br />
<a href="http://jquery.andreaseberhard.de/toggleElements/">jQuery ToggleElements</a>.<br />
<a href="http://www.ndoherty.com/demos/coda-slider/">Coda Slider</a>.<br />
<a href="http://sorgalla.com/projects/jcarousel/#Examples">jCarousel</a>.<br />
<a href="http://www.reindel.com/accessible_news_slider/">Accesible News Slider Plugin</a>.<br />
<a href="http://icant.co.uk/sandbox/jquerycodeview/">Showing and Hiding code Examples</a>.<br />
<a href="http://gsgd.co.uk/sandbox/jquery/easing/">jQuery Easing Plugin</a>.<br />
<a href="http://sonspring.com/journal/jquery-portlets">jQuery Portlets</a>.<br />
<a href="http://jdsharp.us/jQuery/plugins/AutoScroll/">AutoScroll</a>.<br />
<a href="http://medienfreunde.com/lab/innerfade/">Innerfade</a>.
<h2>拖放插件(Drag and Drop)</h2>
<p><a href="http://docs.jquery.com/UI/Draggables">UI/Draggables</a>.<br />
<a href="http://fromvega.com/wordpress/2007/07/14/easydrag-jquery-plugin/">EasyDrag jQuery Plugin</a>.<br />
<a href="http://sonspring.com/journal/jquery-portlets">jQuery Portlets</a>.<br />
<a href="http://dev.iceburg.net/jquery/jqDnR/">jqDnR - drag, drop resize</a>.<br />
<a href="http://interface.eyecon.ro/demos/drag.html">Drag Demos</a>.
<h2>XML XSL JSON Feeds</h2>
<p><a href="http://www.jongma.org/webtools/jquery/xslt/">XSLT Plugin</a>.<br />
<a href="http://cgaskell.wordpress.com/2006/11/02/jquery-ajax-call-and-result-xml-parsing/">jQuery Ajax call and result XML parsing</a>.<br />
<a href="http://jquery.com/plugins/project/xmlObjectifier">xmlObjectifier - Converts XML DOM to JSON</a>.<br />
<a href="http://jquery.glyphix.com/">jQuery XSL Transform</a>.<br />
<a href="http://malsup.com/jquery/taconite/">jQuery Taconite - multiple Dom updates</a>.<br />
<a href="http://www.hovinne.com/blog/index.php/2007/07/15/132-jfeed-jquery-rss-atom-feed-parser-plugin">RSS/ATOM Feed Parser Plugin</a>.<br />
<a href="http://www.malsup.com/jquery/gfeed/">jQuery Google Feed Plugin</a>.
<h2>浏览器(Browserstuff)</h2>
<p><a href="http://noteslog.com/post/how-to-fix-the-resize-event-in-ie/">Wresize - IE Resize event Fix Plugin</a>.<br />
<a href="http://jquery.khurshid.com/ifixpng.php">jQuery ifixpng</a>.<br />
<a href="http://jquery.andreaseberhard.de/pngFix/">jQuery pngFix</a>.<br />
<a href="http://www.crismancich.de/jquery/plugins/linkscrubber/">Link Scrubber - removes the dotted line onfocus from links</a>.<br />
<a href="http://www.matthewjrichards.co.uk/articles/2007/06/25/jquery-perciformes-the-entire-suckerfish-familly-under-one-roof">jQuery Perciformes - the entire suckerfish familly under one roof</a>.<br />
<a href="http://blog.brandonaaron.net/my-jquery-plugins/background-iframe/">Background Iframe</a>.<br />
<a href="http://jquery.com/plugins/project/QinIE">QinIE - for proper display of Q tags in IE</a>.<br />
<a href="http://webrocket.ulmb.com/ability/">jQuery Accessibility Plugin</a>.<br />
<a href="http://www.ogonek.net/mousewheel/jquery-demo.html">jQuery MouseWheel Plugin</a>.
<h2>对话框、确认窗口(Alert, Prompt, Confirm <a onclick="javascript:tagshow(event, 'Windows');" href="javascript:;" target="_self"><u><strong>Windows</strong></u></a>)</h2>
<p><a href="http://trentrichardson.com/Impromptu/">jQuery Impromptu</a>.<br />
<a href="http://nadiaspot.com/jquery/confirm">jQuery Confirm Plugin</a>.<br />
<a href="http://dev.iceburg.net/jquery/jqModal/">jqModal</a>.<br />
<a href="http://www.ericmmartin.com/projects/simplemodal/">SimpleModal</a>.
<h2>CSS</h2>
<p><a href="http://www.kelvinluck.com/article/switch-stylesheets-with-jquery">jQuery Style. Switcher</a>.<br />
<a href="http://andykent.bingodisk.com/bingo/public/jss/">JSS - Javascript. StyleSheets</a>.<br />
<a href="http://flesler.blogspot.com/2007/11/jqueryrule.html">jQuery Rule - creation/manipulation of CSS Rules</a>.<br />
<a href="http://www.designerkamal.com/jPrintArea/">jPrintArea</a>.
<h2>DOM、AJAX和其它JQuery插件（DOM, Ajax and other jQuery plugins）</h2>
<p><a href="http://flydom.socianet.com/">FlyDOM</a>.<br />
<a href="http://brandonaaron.net/docs/dimensions/#getting-started">jQuery Dimenion Plugin</a>.<br />
<a href="http://happygiraffe.net/blog/articles/2007/09/26/jquery-logging">jQuery Loggin</a>.<br />
<a href="http://jquery.com/plugins/project/metadata">Metadata - extract metadata from classes, attributes, elements</a>.<br />
<a href="http://johannburkard.de/blog/programming/javascript/inc-a-super-tiny-client-side-include-javascript-jquery-plugin.html">Super-tiny Client-Side Include Javascript. jQuery Plugin</a>.<br />
<a href="http://humanized.com/weblog/2007/09/14/undo-made-easy-with-ajax-part-1/">Undo Made Easy with Ajax</a>.<br />
<a href="http://www.jasons-toolbox.com/JHeartbeat/">JHeartbeat - periodically poll the server</a>.<br />
<a href="http://www.appelsiini.net/projects/lazyload">Lazy Load Plugin</a>.<br />
<a href="http://blog.brandonaaron.net/2007/08/19/new-plugin-live-query/">Live Query</a>.<br />
<a href="http://jquery.offput.ca/every/">jQuery Timers</a>.<br />
<a href="http://www.joanpiedra.com/jquery/shareit/">jQuery Share it - display social bookmarking icons</a>.<br />
<a href="http://www.jdempster.com/category/code/jquery/cookiejar/">jQuery serverCookieJar</a>.<br />
<a href="http://blog.cnw.com.cn/index.php/p=3">jQuery autoSave</a>.<br />
<a href="http://www.semicomplete.com/blog/geekery/jquery-interface-puffer.html">jQuery Puffer</a>.<br />
<a href="http://33rockers.com/jquery/iframe-demo/">jQuery iFrame. Plugin</a>.<br />
<a href="http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/">Cookie Plugin for jQuery</a>.<br />
<a href="http://leftlogic.com/lounge/articles/jquery_spy2">jQuery Spy - awesome plugin</a>.<br />
<a href="http://www.learningjquery.com/2007/01/effect-delay-trick">Effect Delay Trick</a>.<br />
<a href="http://jquick.sullof.com/jquick/">jQuick - a quick tag creator for jQuery</a>.<a href="http://noteslog.com/post/metaobjects-11-released-today/"><br />
Metaobjects</a>.<br />
<a href="http://www.thunderguy.com/semicolon/2007/08/14/elementready-jquery-plugin/">elementReady</a>.
<p>英文：<a title="http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/" href="http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/">http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/</a></p>
</div>
<img src ="http://www.blogjava.net/ebecket/aggbug/304811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-12-04 17:52 <a href="http://www.blogjava.net/ebecket/articles/304811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js-window对象的方法和属性资料</title><link>http://www.blogjava.net/ebecket/articles/304578.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Thu, 03 Dec 2009 02:23:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/304578.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/304578.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/304578.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/304578.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/304578.html</trackback:ping><description><![CDATA[<div class="postTitle">js-window对象的方法和属性资料 </div>
<div class="postText">Window对象是客户端javascript最高层对象之一，只要打开浏览器窗口，不管该窗口中是否有打开的网页，当遇到BODY、FRAMESET或FRAME元素时，都会自动建立window对象的实例。另外，该对象的实例也可由window.open()方法创建。由于window对象是其它大部分对象的共同祖先，在调用window对象的方法和属性时，可以省略window对象的引用。例如：window.document.write()可以简写成： document.write()。　 在窗口中觖发本窗口对象的任何方法和属性时可以省去窗口的实例名称。例如给当前的myWin窗口设置status属性时，可以只用status而不用myWin.status。但是，在事件处理中调用location属性、close()方法或open()方法时必须使用实例名称。
<div><br />
<font style="background-color: #dda0dd">window对象有以下方法： </font></div>
<div>open <br />
close <br />
alert <br />
confirm <br />
prompt <br />
setTimeout <br />
clearTimeout <br />
setInterval <br />
clearInterval <br />
moveBy <br />
moveTo <br />
resizeBy <br />
resizeTo <br />
scrollBy <br />
scrollTo <br />
find <br />
back <br />
forward <br />
home <br />
stop <br />
print <br />
blur <br />
focus <br />
captureEvent <br />
enableExternalCapture <br />
disableExternalCapture <br />
handleEvent <br />
releaseEvent <br />
routeEvent <br />
scroll </div>
<div>&nbsp;</div>
<div><br />
　　<font style="background-color: #ee82ee">1. open方法</font> <br />
　　语法格式： </div>
<div>window.open(URL,窗口名称,窗口风格) <br />
　　功能：打开一个新的窗口，并在窗口中装载指定URL地址的网页。 </div>
<div>　　说明： </div>
<div>open方法用于打开一个新的浏览器窗口，并在新窗口中装入一个指定的URL地址；<br />
open方法在打开一个新的浏览器窗口时，还可以指定窗口的名称(第二个参数)； <br />
open方法在打开一个新的浏览器窗口时，还可以指定窗口的风格(第三个参数)， </div>
<div>窗口风格有以下选项，这些选项可以多选，如果多选，各选项之间用逗号分隔： <br />
toolbar：指定窗口是否有标准工具栏。当该选项的值为1或yes时，表示有标准工具栏，当该选项的值为0或no时，表示没有标准工具栏； <br />
location：指定窗口是否有地址工具栏，选项的值及含义与toolbar相同； <br />
directories：指定窗口是否有链接工具栏，选项的值及含义与toolbar相同； <br />
status：指定窗口是否有状态栏，选项的值及含义与toolbar相同； <br />
menubar：指定窗口是否有菜单，选项的值及含义与toolbar相同； <br />
scrollbar：指定当前窗口文档大于窗口时是否有滚动条，选项的值及含义与toolbar相同； <br />
resizable：指定窗口是否可改变大小，选项的值及含义与toolbar相同； <br />
width：以像素为单位指定窗口的宽度，已被innerWidth取代； <br />
height：以像素为单位指定窗口的高度，已被innerHeight取代； <br />
outerWidth：以像素为单位指定窗口的外部宽度； <br />
outerHeight：以像素为单位指定窗口的外部高度； <br />
left：以像素为单位指定窗口距屏幕左边的位置； <br />
top：以像素为单位指定窗口距屏幕顶端的位置； <br />
alwaysLowered：指定窗口隐藏在所有窗口之后，选项的值及含义与toolbar相同； <br />
alwaysRaised：指定窗口浮在所有窗口之上，选项的值及含义与toolbar相同；<br />
dependent：指定打开的窗口为当前窗口的一个子窗口，并随着父窗口的关闭而关闭，选项的值及含义与toolbar相同；<br />
hotkeys：在没有菜单栏的新窗口中设置安全退出的热键，选项的值及含义与toolbar相同； <br />
innerHeight：设定窗口中文档的像素高度；<br />
innerWidth：设定窗口中文档的像素宽度；<br />
screenX：设定窗口距离屏幕左边界的像素长度；<br />
screenY：设定窗口距离屏幕上边界的像素长度；<br />
titleBar：指明标题栏是否在新窗口中可见，选项的值及含义与toolbar相同；<br />
z-look：指明当窗口被激活时，不能浮在其它窗口之上，选项的值及含义与toolbar相同。 </div>
<div>open方法返回的是该窗口的引用。 </div>
<div><font style="background-color: #dc143c">小技巧：</font>该方法经常用于在打开一个网页时自动打开另一个窗口。 </div>
<div>&nbsp;</div>
<div><font style="background-color: #ee82ee">2. close方法 </font><br />
语法格式： </div>
<div>window.close() <br />
功能：close方法用于自动关闭浏览器窗口。 </div>
<div><font style="background-color: #ee82ee">3. alert方法 </font><br />
语法格式： </div>
<div>window.alert(提示字符串) <br />
功能：弹出一个警告框，在警告框内显示提示字符串文本。 </div>
<div><font style="background-color: #ee82ee">4. confirm方法 <br />
</font>语法格式： </div>
<div>window.confirm(提示字符串) <br />
功能：显示一个确认框，在确认框内显示提示字符串，当用户单击&#8220;确定&#8221;按钮 </div>
<div>时该方法返回true，单击&#8220;取消&#8221;时返回false。 </div>
<div><font style="background-color: #ee82ee">5. prompt方法 </font><br />
语法格式： </div>
<div>window.prompt(提示字符串，缺省文本) <br />
功能：显示一个输入框，在输入框内显示提示字符串，在输入文本框显示缺省文 </div>
<div>本，并等待用户输入，当用户单击&#8220;确定&#8221;按钮时，返回用户输入的字符串，当 </div>
<div>单击&#8220;取消&#8221;按钮时，返回null值。 </div>
<div><font style="background-color: #ee82ee">6. setTimeout方法 <br />
</font>语法格式： </div>
<div>window.setTimeout(代码字符表达式,毫秒数) <br />
功能：定时设置，当到了指定的毫秒数后，自动执行代码字符表达式。 </div>
<div><font style="background-color: #ee82ee">7. clearTimeout方法 <br />
</font>语法格式： </div>
<div>window.clearTimeout(定时器) <br />
功能：取消以前的定时设置，其中的参数是用setTimeout设置时的返回值。 </div>
<div><font style="background-color: #ee82ee">8. setInterval方法 </font><br />
语法格式： </div>
<div>window.setInterval(代码字符表达式,毫秒数) <br />
功能：设定一个时间间隔后(第二个参数)，反复执行&#8220;代码字符表达式&#8221;的内容 </div>
<div><font style="background-color: #ee82ee">9. clearInterval方法</font> <br />
语法格式： </div>
<div>window.clearInterval(时间间隔器) <br />
功能：取消setInterval设置的定时。其中的参数是setInterval方法的返回值。 </div>
<div><font style="background-color: #ee82ee">10. moveBy方法 </font><br />
语法格式： </div>
<div>window.moveBy(水平位移量,垂直位移量) <br />
功能：按照给定像素参数移动指定窗口。第一个参数是窗口水平移动的像素，第 </div>
<div>二个参数是窗口垂直移动的像素。 </div>
<div><font style="background-color: #ee82ee">11.moveTo方法 <br />
</font>语法格式： </div>
<div>window.moveTo(x,y) <br />
功能：将窗口移动到指定的指定坐标(x,y)处。 </div>
<div><font style="background-color: #ee82ee">12. resizeBy方法 </font><br />
语法格式： </div>
<div>window.resizeBy(水平,垂直) <br />
功能：将当前窗口改变指定的大小(x,y)，当x、y的值大于0时为扩大，小于0时 </div>
<div>为缩小。 </div>
<div><font style="background-color: #ee82ee">13. resizeTo方法 <br />
</font>语法格式： </div>
<div>window.resizeTo(水平宽度,垂直宽度) <br />
功能：将当前窗口改变成(x,y)大小，x、y分别为宽度和高度。 </div>
<div><font style="background-color: #ee82ee">14. scrollBy方法 </font><br />
语法格式： </div>
<div>window.scrollBy(水平位移量，垂直位移量) <br />
功能：将窗口中的内容按给定的位移量滚动。参数为正数时，正向滚动，否则反 </div>
<div>向滚动。 </div>
<div><font style="background-color: #ee82ee">15. scrollTo方法 </font><br />
语法格式： </div>
<div>window.scrollTo(x,y) <br />
功能：将窗口中的内容滚动到指定位置。 </div>
<div><font style="background-color: #ee82ee">16.find方法 </font><br />
语法格式： </div>
<div>window.find() <br />
功能：当触发该方法时，将弹出一个&#8220;find&#8221;(查找)对话窗口，并允许用户在触 </div>
<div>发find方法的页面中查找一个字符串。 </div>
<div><font style="background-color: #dc143c">注：</font>该属性在IE5.5及Netscape6.0中都不支持。 </div>
<div><font style="background-color: #ee82ee">17. back方法 </font><br />
语法格式： </div>
<div>window.back() <br />
功能：模拟用户点击浏览器上的&#8220;后退&#8221;按钮，将页面转到浏览器的上一页。 </div>
<div>说明：仅当当前页面存在上一页时才能进行该操作。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该方法，Netscape6.0支持。 </div>
<div><font style="background-color: #ee82ee">18. forward方法 <br />
</font>语法格式： </div>
<div>window.forward() <br />
功能：模拟用户点击浏览器上的&#8220;前进&#8221;按钮，将页面转到浏览器的下一页。 </div>
<div>说明：仅当当前页面存在下一页时才能进行该操作。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该方法，Netscape6.0支持。 </div>
<div><font style="background-color: #ee82ee">19. home方法</font> <br />
语法格式： </div>
<div>window.home() <br />
功能：模拟用户点击浏览器上的&#8220;主页&#8221;按钮，将页面转到指定的页面上。 </div>
<div><font style="background-color: #ff0000">注：</font>IE5.5不支持该方法，Netscape6.0支持。 </div>
<div><font style="background-color: #ee82ee">20. stop方法 </font><br />
语法格式： </div>
<div>window.stop() <br />
功能：模拟用户点击浏览器上的&#8220;停止&#8221;按钮，终止浏览器的下载操作。 </div>
<div><font style="background-color: #ff0000">注：</font>IE5.5不支持该方法，Netscape6.0支持。 </div>
<div><font style="background-color: #ee82ee">21. print方法 <br />
</font>语法格式： </div>
<div>window.print() <br />
功能：模拟用户点击浏览器上的&#8220;打印&#8221;按钮，通知浏览器打开打印对话框打印 </div>
<div>当前页。 </div>
<div><font style="background-color: #ee82ee">22. blur方法 </font><br />
语法格式： </div>
<div>window.blur() <br />
功能：从窗口中移出焦点。当与focus方法合用时必须小心，因为可能导致焦点 </div>
<div>不断移进移出。 </div>
<div><font style="background-color: #ee82ee">23. focus方法</font> <br />
语法格式： </div>
<div>window.focus() <br />
功能：使窗口中得到焦点。当与blur方法合用时必须小心，因为可能导致焦点不 </div>
<div>断移进移出。 </div>
<div><font style="background-color: #ee82ee">24. captureEvent方法 </font><br />
语法格式： </div>
<div>window.captureEvent(Event) <br />
window.captureEvent(事件1|事件2|...|事件n) <br />
功能：捕捉指定参数的所有事件。由于能够捕获哪些由本地程序自己处理的事件 </div>
<div>，所以程序员可以随意定义函数来处理事件。如果有多个事件需要捕捉，各事件 </div>
<div>之间用管道符&#8220;|&#8221;隔开。可捕捉的事件类型如下： </div>
<div>Event.ABORT </div>
<div>Event.BLUR </div>
<div>Event.CHANGE </div>
<div>Event.CLICK </div>
<div>Event.DBLCLICK </div>
<div>Event.DRAGDROP </div>
<div>Event.ERROR </div>
<div>Event.FOCUS </div>
<div>Event.KEYDOWN </div>
<div>Event.KEYPRESS </div>
<div>Event.KEYUP </div>
<div>Event.LOAD </div>
<div>Event.MOUSEDOWN </div>
<div>Event.MOUSUEMOVE </div>
<div>Event.MOUSEOUT </div>
<div>Event.MOUSEOVER </div>
<div>Event.MOUSEUP </div>
<div>Event.MOVE </div>
<div>Event.RESET </div>
<div>Event.RESIZE </div>
<div>Event.SELECT </div>
<div>Event.SUBMIT </div>
<div>Event.UNLOAD </div>
<div><font style="background-color: #ee82ee">25. enableExternalCapture事件 </font><br />
语法格式： </div>
<div>window.enableExternalCapture(event) <br />
功能：enableExternalCapture方法用于捕捉通过参数传入的外部事件。 </div>
<div><font style="background-color: #ee82ee">26. disableExternalCapture事件 </font><br />
语法格式： </div>
<div>window.disableExternalCapture() <br />
功能：取消enableExternalCapture方法的设置，终止对外部事件的捕捉。 </div>
<div><font style="background-color: #ee82ee">27. handleEvent事件 </font><br />
语法格式： </div>
<div>window.handleEvent(event) <br />
功能：触发指定事件的事件处理器。 </div>
<div><font style="background-color: #ee82ee">28. releaseEvent事件 </font><br />
语法格式： </div>
<div>window.releaseEvent(event) <br />
window.releaseEvent(事件1|事件2|...|事件n) <br />
功能：释放通过参数传入的已被捕捉的事件，这些事件是由 </div>
<div>window.captureEvent方法设置的，可释放的事件与captureEvent相同。 </div>
<div><font style="background-color: #ee82ee">29. routeEvent事件 </font><br />
语法格式： </div>
<div>window.releaseEvent(event) <br />
功能：把被捕捉类型的所有事件转交给标准事件处理方法进行处理，可转交的事 </div>
<div>件与captureEvent相同。 </div>
<div><font style="background-color: #ee82ee">30 scroll事件 </font><br />
语法格式： </div>
<div>window.scroll(X坐标,Y坐标) <br />
功能：将窗口移动到指定的坐标位置。 </div>
<div>&nbsp;</div>
<div><br />
<font style="background-color: #d8bfd8">window对象具有如下属性： </font></div>
<div>status </div>
<div>statusbar </div>
<div>statusbar.visible </div>
<div>defaultstatus </div>
<div>location </div>
<div>locationbar </div>
<div>locationbar.visible </div>
<div>self </div>
<div>name </div>
<div>closed </div>
<div>frames </div>
<div>frames.length </div>
<div>length </div>
<div>document </div>
<div>history </div>
<div>innerHeight </div>
<div>innerWidth </div>
<div>menubar </div>
<div>menubar.visible </div>
<div>opener </div>
<div>outerHeight </div>
<div>outerWidth </div>
<div>pageXOffset </div>
<div>pageYOffset </div>
<div>parent </div>
<div>personalbar </div>
<div>personalbar.visible </div>
<div>scrollbar </div>
<div>scrollbar.visible </div>
<div>toolbar </div>
<div>toolbar.visible </div>
<div>top </div>
<div><font style="background-color: #ee82ee">1. status属性 </font><br />
语法格式： </div>
<div>window.status=字符串 <br />
功能：设置或给出浏览器窗口中状态栏的当前显示信息。 </div>
<div><font style="background-color: #ff0000">小技巧：</font><font style="background-color: #fffafa">可以使用该属性设置浏览器窗口状态栏信息。 </font></div>
<div><font style="background-color: #ee82ee">2. statusbar属性 </font><br />
语法格式： </div>
<div>window.statusbar.属性 <br />
功能：statusbar属性本身也是一个对象，用于访问它自已的visible属性从而确 </div>
<div>定状态栏是否可见。 </div>
<div>注：IE5.5浏览器不支持该属性。 </div>
<div><font style="background-color: #ee82ee">3. statusbar.visible属性</font> <br />
语法格式： </div>
<div>window.statusbar.visible <br />
功能：检查状态栏是否可见，如果可见则返回true，反之返回false。 </div>
<div><font style="background-color: #ff0000">注：</font><font style="background-color: #fffafa">IE5.5浏览器不支持该属性。 </font></div>
<div><font style="background-color: #ee82ee">4. defaultstatus属性</font> <br />
语法格式： </div>
<div>window.defaultstatus[=字符串] <br />
功能：defaultstatus属性值是浏览器窗中状态栏的默认显示信息。 </div>
<div><font style="background-color: #ee82ee">5.location属性 </font><br />
语法格式： </div>
<div>window.location=URL <br />
功能：给出当前窗口的URL信息或指定打开窗口的URL。 </div>
<div><font style="background-color: #ee82ee">6. locationbar属性 </font><br />
语法格式： </div>
<div>window.locationbar.属性 <br />
功能：locationbar属性也可以看成是一个子对象，这个属性用来获取它自已的 </div>
<div>visible属性来确定位置栏是否可见。 </div>
<div>到目前为止，该属性只有一个子属性：visible。 </div>
<div><font style="background-color: #ff0000">注：</font><font style="background-color: #fffafa">IE5.5不支持该属性。 </font></div>
<div><font style="background-color: #ee82ee">7. locationbar.visible属性 </font><br />
语法格式： </div>
<div>window.locationbar.visible <br />
功能：返回位置栏是否可见，如果可见返回true，反之返回false。 </div>
<div><font style="background-color: #dc143c">注：</font><font style="background-color: #fffafa">IE5.5不支持该属性。 </font></div>
<div><font style="background-color: #ee82ee">8. self属性 <br />
</font>语法格式： </div>
<div>window.self.方法 <br />
window.self.属性 <br />
功能：该属性包含当前窗口的标志，利用这个属性，可以保证在多个窗口被打开 </div>
<div>的情况下，正确调用当前窗口内的函数或属性而不会发生混乱。 </div>
<div><font style="background-color: #ee82ee">9. name属性</font> <br />
语法格式： </div>
<div>window.name=名称 <br />
功能：返回窗口名称，这个名称是由window.open()方法创建新窗口时给定的。 </div>
<div>在javascript1.0版本中，这个属性只能用于读取窗口名称，而到了 </div>
<div>javascript1.1版本时，可以用这个属性给一个不是用window.open()方法创建的 </div>
<div>窗口指定一个名称。 </div>
<div><font style="background-color: #ee82ee">10. closed属性 <br />
</font>语法格式： </div>
<div>window.closed <br />
功能：closed属性用于返回指定窗口的实例是否已经关闭，如果关闭，返回true </div>
<div>，反之返回flase。 </div>
<div><font style="background-color: #ee82ee">11. frames属性 <br />
</font>语法格式： </div>
<div>window.frames["框架名称"] <br />
window.frames[数值] <br />
功能：frames属性是一个数组，用来存储文档中每一个由元素创建的子窗口(框 </div>
<div>架)实例，其中的下标即可以是次序号也可以是用FRAME元素的NAME属性指定的名 </div>
<div>称来得到并使用。 </div>
<div><font style="background-color: #ee82ee">12. frames.length属性</font> <br />
语法格式： </div>
<div>window.frames.length <br />
功能：frames.length属性用于给出文档中子窗口(框架)实例的个数。 </div>
<div><font style="background-color: #ee82ee">13. length属性 </font><br />
语法格式： </div>
<div>window.length <br />
功能：length属性返回一个窗口内的子窗口数目，该属性与 </div>
<div>window.frame.length属性的值相同。 </div>
<div><font style="background-color: #ee82ee">14. document属性 </font><br />
语法格式： </div>
<div>window.document.事件 <br />
window.document.方法 <br />
window.document.属性 <br />
功能：window对象的子对象document是javascript的核心对象，在脚本中遇到 </div>
<div>BODY元素时创建一个实例。 </div>
<div><font style="background-color: #ee82ee">15. history属性</font> <br />
语法格式： </div>
<div>window.history[数值] <br />
window.history.方法() <br />
window.history.属性 <br />
window对象的子对象history是javascript的核心对象之一，该属性包含了一个 </div>
<div>已访问过页面的名称和URL的数组。 </div>
<div><font style="background-color: #ee82ee">16. innerHeight属性 </font><br />
语法格式： </div>
<div>window.innerHeight=数值 <br />
功能：返回或指定浏览器窗口中文档的像素高度，这个高度不包括任何工具栏和 </div>
<div>组成窗口的页面修饰高度。 </div>
<div><font style="background-color: #ff0000">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">17. innerWidth属性 <br />
</font>语法格式： </div>
<div>window.innerHeight=数值 <br />
功能：返回或指定浏览器窗口中文档的像素宽度，这个宽度不包括任何工具栏和 </div>
<div>组成窗口的页面修饰宽度。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">18. menubar属性 <br />
</font>语法格式： </div>
<div>window.menubar.属性 <br />
功能：menubar属性也可以看成是一个子对象，这个属性用来获取它自已的 </div>
<div>visible属性来确定菜单栏是否可见。 </div>
<div>到目前为止，该属性只有一个子属性：visible。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">19. menubar.visible属性 <br />
</font>语法格式： </div>
<div>window.menubar.visible <br />
功能：menubar.visible属性用于返回菜单栏是否可见，如果可见返回true，反 </div>
<div>之返回false。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">20. opener属性 </font><br />
语法格式： </div>
<div>window.opener <br />
window.opener.方法 <br />
window.opener.属性 <br />
功能：opener属性与打开该窗口的父窗口相联系，当访问子窗口中operer属性时 </div>
<div>，返回的是父窗口。通过该属性，可以使用父窗口对象中的方法和属性。 </div>
<div><font style="background-color: #ee82ee">21. outerHeight属性 <br />
</font>语法格式： </div>
<div>window.outerHeight <br />
功能：outerHeight属性用于访问浏览器窗口的像素高度，该高度包括工具栏和 </div>
<div>装饰边的高度。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">22. outerWidth属性 </font><br />
语法格式： </div>
<div>window.outerWidth <br />
功能：outerWidth属性用于访问浏览器窗口的像素宽度，该宽度包括工具栏和装 </div>
<div>饰边的宽度。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">23. pageXOffset属性 <br />
</font>语法格式： </div>
<div>window.pageXOffset=数值 <br />
功能：指定浏览器窗口中文档左上角在窗口中的当前水平像素位置。在利用 </div>
<div>moveTo移动之前，可以通过该属性来决定是否需要移动窗口。因为该属性返回了 </div>
<div>可见文档相对整个页面的当前位置。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">24. pageYOffset属性 </font><br />
语法格式： </div>
<div>window.pageYOffset=数值 <br />
功能：指定浏览器窗口中文档左上角在窗口中的当前垂直像素位置。在利用 </div>
<div>moveTo移动之前，可以通过该属性来决定是否需要移动窗口。因为该属性返回了 </div>
<div>可见文档相对整个页面的当前位置。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">25. parent属性 </font><br />
语法格式： </div>
<div>window.parent.frames[数值] <br />
window.parent.framesName <br />
功能：访问各个子窗口(多框架)所在的父窗口。 </div>
<div><font style="background-color: #ee82ee">26. personalbar属性 <br />
</font>语法格式： </div>
<div>window.personalbar.属性 <br />
功能：personalbar属性本身也是一个对象，用于访问其自身的visible属性来确 </div>
<div>定个人栏是否可见。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">27. personalbar.visible属性 </font><br />
语法格式： </div>
<div>window.personalbar.visible <br />
功能：确定个人栏是否可见，如果可见则返回true，反之返回false。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">28. scrollbars属性</font> <br />
语法格式： </div>
<div>window.scrollbars.属性 <br />
功能：scrollbars属性本身也是一个对象，用于访问其自身的visible属性来确 </div>
<div>定滚动栏是否可见。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">29. scrollbars.visible属性</font> <br />
语法格式： </div>
<div>window.scrollbars.visible <br />
功能：scrollbars.visible用于确定滚动栏是否可见，如果可见则返回true，反 </div>
<div>之返回false。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">30. toolbar属性</font> <br />
语法格式： </div>
<div>window.toolbar.属性 <br />
功能：toolbar属性本身也是一个对象，用于访问它自已的visible属性从而确定 </div>
<div>工具栏是否可见。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">31. toolbar.visible属性 <br />
</font>语法格式： </div>
<div>window.toolbar.visible <br />
功能：toolbar.visible属性用于检查工具栏是否可见，如果可见则返回true， </div>
<div>反之返回false。 </div>
<div><font style="background-color: #dc143c">注：</font>IE5.5不支持该属性。 </div>
<div><font style="background-color: #ee82ee">32. top属性 </font><br />
语法格式： </div>
<div>window.top.frames[数值] <br />
window.top.frameName <br />
window.top.方法() <br />
window.top.属性 <br />
功能：window对象的top属性用于包含所有装入浏览器的子窗口(多框架)的最顶层窗口的信息</div>
</div>
<img src ="http://www.blogjava.net/ebecket/aggbug/304578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-12-03 10:23 <a href="http://www.blogjava.net/ebecket/articles/304578.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RTree</title><link>http://www.blogjava.net/ebecket/articles/304298.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Mon, 30 Nov 2009 10:48:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/304298.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/304298.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/304298.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/304298.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/304298.html</trackback:ping><description><![CDATA[这是我写的第一个js的控件，修修改改快大半年了，公司的老项目里在用。 <br />
废话不多说，直接说特点吧！ <br />
r.setNodedbc(true);根（有子节点）是否可以双击打开关闭。 <br />
r.setNodehref(false);根（有子节点）是否可以触发事件。 <br />
r.setLazy(false);是否延迟生成树。 <br />
r.canAlterbg(true);点击节点后改变背景色。这是用jquery做得补丁式的功能。 <br />
8个参数 id，父id，显示字符，关闭时图片路径，打开时图片路径，href的路劲/调的js方法，目标，是否关闭（lazy=true时无效）。 <br />
我觉得最大的特色就是lazy，我写的时候发现，树慢就慢在构造上，加载数据到不慢，所以lazy就是数据一次性加进去，但一次只生成一层。如果要打开好几层的话，可以自己调openNode()方法。 <br />
像大家说的checkbox等功能，我做过例子，是通过jquery后期再添加进去的，觉得jquery打补丁真的不错。 <br />
<span style="color: red">号称的250000条数据，是在全部都是随机节点的情况下，不死机的状况。就是一层的节点不能过大。。不然也会死。</span> <br />
代码很少200行，注释70行，大家如果用得上的话，我就最开心不过了！！！ <br />
下面是构造的代码，同dtree，有啥意见多提提，我好再改进，谢谢啦！！！ <br />
<br />
!!!!!!如果用js方法的话 参数要用&amp;quot包起来。如 javascript:afun(&amp;quot;xxx&amp;quot;);!!!!!!!!!!!! <br />
<br />
<span style="color: red">全部打开按钮，只适用于不使用lazy的情况</span> <br />
<br />
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Java代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://www.javaeye.com/topic/460966#"><img alt="复制代码" src="http://www.javaeye.com/images/icon_copy.gif" /></a></div>
</div>
<ol class="dp-j">
    <li><span><span>var&nbsp;r=</span><span class="keyword">new</span><span>&nbsp;rTree(</span><span class="string">"r"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>r.setNodedbc(</span><span class="keyword">true</span><span>);</span><span class="comment">//双击开关节点 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>r.setNodehref(</span><span class="keyword">false</span><span>);</span><span class="comment">//根是否能绑事件&nbsp; </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>r.setLazy(</span><span class="keyword">false</span><span>);</span><span class="comment">//延时构造树&nbsp;要加入1000条以上节点时，请设为true </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>r.canAlterbg(</span><span class="keyword">true</span><span>);</span><span class="comment">//点击节点后，改变节点背景色 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>r.add(</span><span class="number">1</span><span>,</span><span class="number">0</span><span>,</span><span class="string">"a哈罗"</span><span>,</span><span class="string">'images/folderclose.gif'</span><span>,</span><span class="string">'images/imgfolder.gif'</span><span>,</span><span class="string">'javascript:alert("我们都是哈罗！！！")'</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>r.add(</span><span class="number">2</span><span>,</span><span class="number">1</span><span>,</span><span class="string">"男哈罗"</span><span>,</span><span class="string">'images/hello1.gif'</span><span>,</span><span class="string">''</span><span>,</span><span class="string">"./baidu.mht"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>r.add(</span><span class="number">3</span><span>,</span><span class="number">1</span><span>,</span><span class="string">"b哈罗"</span><span>,</span><span class="string">''</span><span>,</span><span class="string">'images/hello1.gif'</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>r.add(</span><span class="number">4</span><span>,</span><span class="number">1</span><span>,</span><span class="string">"c哈罗"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>r.add(</span><span class="number">5</span><span>,</span><span class="number">1</span><span>,</span><span class="string">"d哈罗"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>r.add(</span><span class="number">6</span><span>,</span><span class="number">2</span><span>,</span><span class="string">"e女哈罗"</span><span>,</span><span class="string">''</span><span>,</span><span class="string">''</span><span>,</span><span class="string">"images/hello1.jpg"</span><span>,</span><span class="string">"show"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>r.add(</span><span class="number">7</span><span>,</span><span class="number">2</span><span>,</span><span class="string">"f哈罗"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>r.add(</span><span class="number">8</span><span>,</span><span class="number">3</span><span>,</span><span class="string">"g哈罗"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>r.add(</span><span class="number">9</span><span>,</span><span class="number">3</span><span>,</span><span class="string">"h哈罗"</span><span>,</span><span class="string">""</span><span>,</span><span class="string">""</span><span>,</span><span class="string">""</span><span>,</span><span class="string">""</span><span>,</span><span class="keyword">true</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>r.add(</span><span class="number">10</span><span>,</span><span class="number">3</span><span>,</span><span class="string">"i哈罗"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span class="keyword">for</span><span>(var&nbsp;i=</span><span class="number">11</span><span>;i&lt;</span><span class="number">11</span><span>;i++){</span><span class="comment">//设置随机的节点，10000的话还是很快的。。刷的一下就出来 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;r.add(i,parseInt(Math.random()*i),</span><span class="string">"测试"</span><span>+i); &nbsp;&nbsp;</span></span></li>
    <li><span>} &nbsp;&nbsp;</span></li>
    <li><span class="comment">//r.useBgImg("images/green.jpg"); </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>r.startTree();&nbsp;&nbsp;</span></li>
</ol>
</div>
<img src ="http://www.blogjava.net/ebecket/aggbug/304298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-11-30 18:48 <a href="http://www.blogjava.net/ebecket/articles/304298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dtree+Jquery动态生成树节点</title><link>http://www.blogjava.net/ebecket/articles/304297.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Mon, 30 Nov 2009 10:46:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/304297.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/304297.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/304297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/304297.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/304297.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Dtree+Jquery动态生成树节点.最近有朋友问我一个动态生成树怎么做.后来就用Dtree&nbsp; js组件和Jquery实现了一个demo给他.现在贴出来给初学者做些参考.&nbsp;1.先来介绍一下. dtree 的用法.(我引用了以前我收集的一篇文章.还比较详细,出处不记得啦).文章下面会附带dtree用法的例子.&nbsp;&nbsp;&nbsp;&nbsp;&...&nbsp;&nbsp;<a href='http://www.blogjava.net/ebecket/articles/304297.html'>阅读全文</a><img src ="http://www.blogjava.net/ebecket/aggbug/304297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-11-30 18:46 <a href="http://www.blogjava.net/ebecket/articles/304297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JQuery安装与智能感应</title><link>http://www.blogjava.net/ebecket/articles/302819.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Wed, 18 Nov 2009 09:21:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/302819.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/302819.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/302819.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/302819.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/302819.html</trackback:ping><description><![CDATA[<h2 class="pageTitle">&nbsp;</h2>
<h2 class="pageTitle">http://weblogs.asp.net/scottgu/archive/2008/11/21/jquery-intellisense-in-vs-2008.aspx</h2>
<h2 class="pageTitle">jQuery Intellisense in VS 2008 </h2>
<div class="post">
<div class="postsub"><font face="arial" size="2">
<p>Last month I blogged about <a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx" target="_blank">how Microsoft is extending support for jQuery</a>.&nbsp; Over the last few weeks we've been working with the jQuery team to add great jQuery intellisense support within Visual Studio 2008 and Visual Web Developer 2008 Express (which is free).&nbsp; This is now available to download and use.</p>
<h3>Steps to Enable jQuery Intellisense in VS 2008</h3>
<p>To enable intellisense completion for jQuery within VS you'll want to follow three steps:</p>
<p><u><strong>Step 1: Install VS 2008 SP1</strong></u></p>
<p>VS 2008 SP1 adds richer JavaScript intellisense support to Visual Studio, and adds code completion support for a broad range of JavaScript libraries. </p>
<p>You can download VS 2008 SP1 and Visual Web Developer 2008 Express SP1 <a href="http://msdn.microsoft.com/en-us/vstudio/cc533448.aspx" target="_blank">here</a>.</p>
<p><strong><u>Step 2: Install VS 2008 Patch KB958502 to Support "-vsdoc.js" Intellisense Files</u></strong></p>
<p>Two weeks ago we shipped a patch that you can apply to VS 2008 SP1 and VWD 2008 Express SP1 that causes Visual Studio to check for the presence of an optional "-vsdoc.js" file when a JavaScript library is referenced, and if present to use this to drive the JavaScript intellisense engine.</p>
<p>These annotated "-vsdoc.js" files can include XML comments that provide help documentation for JavaScript methods, as well as additional code intellisense hints for dynamic JavaScript signatures that cannot automatically be inferred.&nbsp; You can learn more about this patch <a href="http://blogs.msdn.com/webdevtools/archive/2008/11/07/hotfix-to-enable-vsdoc-js-intellisense-doc-files-is-now-available.aspx" target="_blank">here</a>.&nbsp; You can download it for free <a href="http://code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736" target="_blank">here</a>.</p>
<p><strong><u>Step 3: Download the jQuery-vsdoc.js file</u></strong></p>
<p>We've worked with the jQuery team to put together a jQuery-vsdoc.js file that provides help comments and support for JavaScript intellisense on chained jQuery selector methods.&nbsp; You can download both jQuery and the jQuery-vsdoc file from the <a href="http://docs.jquery.com/Downloading_jQuery#Download_jQuery" target="_blank">official download page</a> on the jQuery.com site:</p>
<p><img alt="" src="http://www.scottgu.com/blogposts/jquerynov/step1.png" /> </p>
<p>Save the jquery-vsdoc.js file next to your jquery.js file in your project (and make sure its naming prefix matches the jquery file name):</p>
<p><img alt="" src="http://www.scottgu.com/blogposts/jquerynov/step2.png" /> </p>
<p>You can then reference the standard jquery file with an html &lt;script/&gt; element like so:</p>
<p><img alt="" src="http://www.scottgu.com/blogposts/jquerynov/step3.png" /> </p>
<p>Or alternatively reference it using the &lt;asp:scriptmanager/&gt; control, or by adding a /// &lt;reference/&gt; comment at the top of a standalone .js file.&nbsp; </p>
<p>When you do this VS will now look for a -vsdoc.js file in the same directory as the script file you are referencing, and if found will use it for help and intellisense.&nbsp; The annotated </p>
<p>For example, we could use jQuery to make a JSON based get request, and get intellisense for the method (hanging off of $.):</p>
<p><img alt="" src="http://www.scottgu.com/blogposts/jquerynov/step4.png" /> </p>
<p>As well as help/intellisense for the $.getJSON() method's parameters:</p>
<p><img alt="" src="http://www.scottgu.com/blogposts/jquerynov/step5.png" />&nbsp;</p>
<p>The intellisense will continue to work if you nest a callback function within the method call.&nbsp; For example, we might want to iterate over each JSON object returned from the server:</p>
<p><img alt="" src="http://www.scottgu.com/blogposts/jquerynov/step6.png" /> </p>
<p>And for each of the items we could execute another nested callback function:</p>
<p><img alt="" src="http://www.scottgu.com/blogposts/jquerynov/step7.png" /> </p>
<p>We could use the each callback function to dynamically append a new image to a list (the image src attribute will point to the URL of the returned JSON media image):</p>
<p><img alt="" src="http://www.scottgu.com/blogposts/jquerynov/step8.png" /> </p>
<p>And on each dynamically created image we could wire-up a click event handler so that when it is pressed it will disappear via an animation:</p>
<p><img alt="" src="http://www.scottgu.com/blogposts/jquerynov/step10.png" /> </p>
<p>Notice how the jQuery intellisense works cleanly at each level of our code.&nbsp; </p>
<h3>JavaScript Intellisense Tips and Tricks</h3>
<p>Jeff King from the Web Tools team <a href="http://blogs.msdn.com/webdevtools/archive/2008/11/18/jscript-intellisense-faq.aspx" target="_blank">wrote up a great post</a> earlier this week that answers a number of common questions about how JavaScript intellisense works with VS 2008.&nbsp; I highly recommend reading it.</p>
<p>One trick he talks about which I'll show here is a technique you can use when you want to have JavaScript intellisense work within user-controls/partials (.ascx files).&nbsp; Often you don't want to include a JavaScript library &lt;script src=""/&gt; reference&nbsp; within these files, and instead have this live on the master page or content page the user control is used within.&nbsp; The problem of course when you do this is that by default VS has no way of knowing that this script is available within the user control - and so won't provide intellisense of it for you.</p>
<p>One way you can enable this is by adding the &lt;script src=""/&gt; element to your user control, but then surround it with a server-side &lt;% if %&gt; block that always evaluates to false at runtime:</p>
<p><img alt="" src="http://www.scottgu.com/blogposts/jquerynov/step11.png" /> </p>
<p>At runtime ASP.NET will never render this script tag (since it is wrapped in an if block that is always false).&nbsp; However, VS <em>will</em> evaluate the &lt;script/&gt; tag and provide intellisense for it within the user-control.&nbsp; A useful technique to use for scenarios like the user control one.&nbsp; Jeff has even more details in his <a href="http://blogs.msdn.com/webdevtools/archive/2008/11/18/jscript-intellisense-faq.aspx" target="_blank">FAQ post</a> as well as his <a href="http://blogs.msdn.com/webdevtools/archive/2008/10/28/rich-intellisense-for-jquery.aspx" target="_blank">original jQuery intellisense post</a>.&nbsp; Rick Strahl also has a good post about using jQuery intellisense <a href="http://www.west-wind.com/Weblog/posts/536756.aspx" target="_blank">here</a>.</p>
<h3>More Information</h3>
<p>To learn more about jQuery, I recommend watching Stephen Walther's <a href="http://channel9.msdn.com/pdc2008/PC31/" target="_blank">ASP.NET and jQuery</a> PDC talk. <a href="http://weblogs.asp.net/stephenwalther/archive/2008/10/29/jquery-and-asp-net-ajax-demo-code.aspx" target="_blank">Click here</a> to download his code samples and powerpoint presentation.</p>
<p>Rick Strahl also has a really nice <a href="http://www.west-wind.com/presentations/jQuery/default.aspx">Introduction to jQuery</a> article that talks about using jQuery with ASP.NET.&nbsp; Karl Seguin has two nice jQuery primer posts <a href="http://dotnetslackers.com/articles/ajax/JQuery-Primer-Part-1.aspx" target="_blank">here</a> and <a href="http://dotnetslackers.com/articles/ajax/JQuery-Primer-Part-2.aspx" target="_blank">here</a> that provide shorter overviews of some of the basics of how to use jQuery.&nbsp; </p>
<p>I also highly recommend the <a href="http://www.amazon.com/gp/product/1933988355/102-4745100-5076967?ie=UTF8&amp;tag=scoblo04-20&amp;linkCode=xm2&amp;camp=1789&amp;creativeASIN=1933988355" target="_blank">jQuery in Action</a> book.</p>
<p>Hope this helps,</p>
<p>Scott</font></p>
</div>
</div>
<img src ="http://www.blogjava.net/ebecket/aggbug/302819.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-11-18 17:21 <a href="http://www.blogjava.net/ebecket/articles/302819.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>支持jQuery版本vsdoc.js的智能提示的VS2008 SP1补丁下载</title><link>http://www.blogjava.net/ebecket/articles/302183.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Fri, 13 Nov 2009 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/302183.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/302183.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/302183.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/302183.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/302183.html</trackback:ping><description><![CDATA[<p>http://www.xueit.com/html/2009-05/32_2026_00.html<br />
<br />
Jeff King发布了一个jQuery智能提示Visual Studio 2008 SP1 补丁，安装这个补丁后，Visual Studio 2008可以自动找到vsdoc.js文件，我们不需要在脚本文件中定义&lt;%if (false)%&gt;代码段就可以看到jQuery方法说明信息了，这个补丁支持English, Fran&#231;ais, Deutsch, Italiano, 한국어, 繁體中文, 简体中文, 日本語, Русский, Portugu&#234;s (Brasil) 各种语言。</p>
<p>下载地址：http://code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736</p>
<p>安装界面如下：</p>
<p>&nbsp;</p>
<p>安装完之后，我新建一个Web程序测试一下，引入jQuery库文件jQuery-1.2.6.js和jQueryVS智能文件jQuery-1.2.6-vsdoc.js。</p>
<p>&nbsp;</p>
<p>你可以到jQuery官方网站上下载jQuery。地址为：http://docs.jQuery.com/Downloading_jQuery#Download_jQuery</p>
<p>1.使用ScriptManager ScriptReference方式：</p>
<p>&nbsp;</p>
<p>2.使用脚本标记方式：</p>
<p>&nbsp;</p>
<p>3.使用引入XML标记方式：</p>
<p>&nbsp;</p>
<p>相关帖子：</p>
<p>http://blogs.msdn.com/webdevtools/archive/2008/11/07/hotfix-to-enable-vsdoc-js-intellisense-doc-files-is-now-available.aspx</p>
<p>http://blogs.msdn.com/webdevtools/archive/2008/10/28/rich-intellisense-for-jquery.aspx</p>
<p>文章来自学IT网：http://www.xueit.com/html/2009-05/32_2026_00.html</p>
<img src ="http://www.blogjava.net/ebecket/aggbug/302183.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-11-13 10:58 <a href="http://www.blogjava.net/ebecket/articles/302183.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在JS文件使用Google Analytics谷歌分析的统计代码</title><link>http://www.blogjava.net/ebecket/articles/301934.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Wed, 11 Nov 2009 02:11:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/301934.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/301934.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/301934.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/301934.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/301934.html</trackback:ping><description><![CDATA[Google Analytics（谷歌分析）是一个企业级的网络分析解决方案，可以让网站主了解详细的网站流量，不过在使用过程中，很多人碰到这样一个问题，就是不想批量修改原来的静态HTML页面，而是使用外部Javascript文件的方式进行修改，而Google Analytics的代码是无法直接加到JS文件中的。
<p>　　这里介绍一个方法，使用这个方法，就可以直接将Google Analytics（谷歌分析）的代码放到外部JS文件中了。</p>
<p>　　具体方法是，将下面的代码修改为你的ID，然后加入外部JS文件，即可实现在JavaScript文件中使用Google Analytics（谷歌分析）。</p>
<p>document.write('&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;/script&gt;');<br />
function analytics()<br />
{<br />
&nbsp;_uacct = "UA-*******-*";//你的ID<br />
&nbsp;urchinTracker();<br />
}<br />
if (document.all){<br />
&nbsp;window.attachEvent('onload',analytics);<br />
}<br />
else{<br />
&nbsp;window.addEventListener('load',analytics,false);<br />
}</p>
<img src ="http://www.blogjava.net/ebecket/aggbug/301934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-11-11 10:11 <a href="http://www.blogjava.net/ebecket/articles/301934.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript - 设计模式（简单工厂和工厂模式）</title><link>http://www.blogjava.net/ebecket/articles/300550.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Sun, 01 Nov 2009 03:47:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/300550.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/300550.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/300550.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/300550.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/300550.html</trackback:ping><description><![CDATA[<div class="tit">JavaScript - 设计模式（简单工厂和工厂模式）</div>
<div class="date">2008年10月18日 23:28</div>
<table style="table-layout: fixed; width: 100%">
    <tbody>
        <tr>
            <td>
            <div class="cnt" id="blog_text">经 常一个类或者一个对象都会包含其它的对象，当这些成员对象需要创建时，通常会使用 new 关键字和类的构造函数。问题是这样会创建两个类的依赖性。下面我们来看看一个模式，它能够帮助这两个类解耦，并使用一个方法来决定要创建哪个类的实例。我 们讨论简单工厂模式，它使用一个分离的类（经常是一个单态）来创建实例，还讨论比较复杂的工厂模式，使用子类来决定使用哪个具体的类来实例化一个成员对 象。<br />
            <br />
            <strong>// 简单工厂</strong><br />
            var BicycleShop = function() {};<br />
            BicycleShop.prototype = {<br />
            sellBicycle: function(model) {<br />
            &nbsp;&nbsp;&nbsp; var bicycle = BicycleFactory.<font style="background-color: #ffff00">createBicycle</font>(model);;<br />
            <br />
            &nbsp;&nbsp;&nbsp; bicycle.assemble();<br />
            &nbsp;&nbsp;&nbsp; bicycle.wash();<br />
            &nbsp;&nbsp;&nbsp; return bicycle;<br />
            }<br />
            };<br />
            <br />
            var BicycleFactory = {<br />
            <font style="background-color: #ffff00">createBicycle</font>: function(model) {<br />
            &nbsp;&nbsp;&nbsp; var bicycle;<br />
            &nbsp;&nbsp;&nbsp; switch(model) {<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'The Speedster':<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bicycle = new Speedster();<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'The Lowrider':<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bicycle = new Lowrider();<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'The Flatlander':<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bicycle = new Flatlander();<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'The Comfort Cruiser':<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bicycle = new ComfortCruiser();<br />
            &nbsp;&nbsp;&nbsp; }<br />
            &nbsp;&nbsp;&nbsp; Interface.ensureImplements(bicycle, Bicycle); // 确保实现接口 Bicycle<br />
            &nbsp;&nbsp;&nbsp; return bicycle;<br />
            }<br />
            };<br />
            <br />
            var Bicycle = new Interface('Bicycle', ['assemble', 'wash', 'ride', 'repair']); // 新建一个接口，Interface 类是模仿经典 OO 中的 Interface 的实现，以后有机会再介绍这个 Interface 的实现，如果要运行实例可以把有关Interface的代码去掉<br />
            <br />
            var Speedster = function() { // 实现接口 Bicycle<br />
            //<br />
            };<br />
            Speedster.prototype = {<br />
            assemble: function() {<br />
            &nbsp;&nbsp;&nbsp; //<br />
            },<br />
            wash: function() {<br />
            &nbsp;&nbsp;&nbsp; //<br />
            },<br />
            ride: function() {<br />
            &nbsp;&nbsp;&nbsp; //<br />
            },<br />
            repair: function() {<br />
            &nbsp;&nbsp;&nbsp; //<br />
            }<br />
            };<br />
            <br />
            <strong>//工厂模式</strong><br />
            var BicycleShop = function() {}; // 一个抽象类<br />
            BicycleShop.prototype = {<br />
            sellBicycle: function(model) {<br />
            &nbsp;&nbsp;&nbsp; var bicycle = this.<font style="background-color: #ffff00">createBicycle</font>(model);<br />
            &nbsp;&nbsp;&nbsp; bicycle.assemble();<br />
            &nbsp;&nbsp;&nbsp; bicycle.wash();<br />
            &nbsp;&nbsp;&nbsp; return bicycle;<br />
            },<br />
            <font style="background-color: #ffff00">createBicycle</font>: function(model) {<br />
            &nbsp;&nbsp;&nbsp; throw new Error('Unsupported operation on an abstract class.');<br />
            }<br />
            };<br />
            <br />
            以上是一个抽象类，不应该被实例化，应该通过继承来实现自行车(bicycle)的生产，工厂模式就是把成员对象的实例化延迟到他的子类，以下是一个工厂模式子类的实现：<br />
            <br />
            var AcmeBicycleShop = function() {};<br />
            extend(AcmeBicycleShop, BicycleShop); // 继承函数，<a href="http://hi.baidu.com/andycai/blog/item/477ace5c2711e945fbf2c0e4.html" target="_blank">这篇文章</a>有介绍<br />
            AcmeBicycleShop.prototype.<font style="background-color: #ffff00">createBicycle</font> = function(model) {<br />
            var bicycle;<br />
            switch(model) {<br />
            &nbsp;&nbsp;&nbsp; case 'The Speedster':<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bicycle = new AcmeSpeedster();<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
            &nbsp;&nbsp;&nbsp; case 'The Lowrider':<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bicycle = new AcmeLowrider();<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
            &nbsp;&nbsp;&nbsp; case 'The Flatlander':<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bicycle = new AcmeFlatlander();<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
            &nbsp;&nbsp;&nbsp; case 'The Comfort Cruiser':<br />
            &nbsp;&nbsp;&nbsp; default:<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bicycle = new AcmeComfortCruiser();<br />
            }<br />
            Interface.ensureImplements(bicycle, Bicycle);<br />
            return bicycle; <br />
            };<br />
            <br />
            <strong>// 通过工厂模式来创建 XMLHTTPRequest 对象</strong><br />
            /* AjaxHandler 接口 */<br />
            var AjaxHandler = new Interface('AjaxHandler', ['request', 'createXhrObject']);<br />
            /* SimpleHandler 类. */<br />
            var SimpleHandler = function() {}; // 实现 AjaxHandler 接口<br />
            SimpleHandler.prototype = {<br />
            request: function(method, url, callback, postVars) {<br />
            &nbsp;&nbsp;&nbsp; var xhr = this.createXhrObject();<br />
            &nbsp;&nbsp;&nbsp; xhr.onreadystatechange = function() {<br />
            &nbsp;&nbsp;&nbsp; if(xhr.readyState !== 4) return;<br />
            &nbsp;&nbsp;&nbsp; (xhr.status === 200) ? <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; callback.success(xhr.responseText, xhr.responseXML) : <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; callback.failure(xhr.status);<br />
            &nbsp;&nbsp;&nbsp; };<br />
            &nbsp;&nbsp;&nbsp; xhr.open(method, url, true);<br />
            &nbsp;&nbsp;&nbsp; if(method !== 'POST') postVars = null;<br />
            &nbsp;&nbsp;&nbsp; xhr.send(postVars);<br />
            },<br />
            createXhrObject: function() { // Factory method.<br />
            &nbsp;&nbsp;&nbsp; var methods = [<br />
            &nbsp;&nbsp;&nbsp; function() { return new XMLHttpRequest(); },<br />
            &nbsp;&nbsp;&nbsp; function() { return new ActiveXObject('Msxml2.XMLHTTP'); },<br />
            &nbsp;&nbsp;&nbsp; function() { return new ActiveXObject('Microsoft.XMLHTTP'); }<br />
            &nbsp;&nbsp;&nbsp; ];<br />
            &nbsp;&nbsp;&nbsp; for(var i = 0, len = methods.length; i &lt; len; i++) {<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; methods[i]();<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(e) {<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // If we reach this point, method[i] worked.<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.createXhrObject = methods[i]; // Memoize the method.<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return methods[i];<br />
            &nbsp;&nbsp;&nbsp; }<br />
            &nbsp;&nbsp;&nbsp; // If we reach this point, none of the methods worked.<br />
            &nbsp;&nbsp;&nbsp; throw new Error('SimpleHandler: Could not create an XHR object.');<br />
            } <br />
            };<br />
            <br />
            使用实例：<br />
            <strong>var myHandler = new SimpleHandler();<br />
            var callback = { <br />
            success: function(responseText) { alert('Success: ' + responseText); }, <br />
            failure: function(statusCode) { alert('Failure: ' + statusCode); } <br />
            };<br />
            myHandler.request('GET', 'script.php', callback);</strong></div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/ebecket/aggbug/300550.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-11-01 11:47 <a href="http://www.blogjava.net/ebecket/articles/300550.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>5个有趣的IE浏览器地址栏JavaScript代码</title><link>http://www.blogjava.net/ebecket/articles/300355.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Fri, 30 Oct 2009 06:51:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/300355.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/300355.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/300355.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/300355.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/300355.html</trackback:ping><description><![CDATA[<div id="context_title">
<h1>5个有趣的IE浏览器地址栏JavaScript代码 </h1>
<div id="context_title_detail">2008-07-19 09:04:00　来源:<a href="http://www.vista123.com/" target="_blank">Vista之家</a>　作者:Vista之家 点击: <script language="JavaScript" src="http://news.newhua.com/Click.asp?type=ajax&amp;SubSys=NS&amp;spanid=NS_id_click_7HG71AD52DI0B62C46525CAFG3EDF7K663A12GDG"></script><span id="NS_id_click_7HG71AD52DI0B62C46525CAFG3EDF7K663A12GDG">3206</span>
<hr style="margin: 16px 0px" />
<span style="padding-right: 18px; display: block; padding-left: 18px; padding-bottom: 0px; width: 98%; color: #002166; line-height: 25px; padding-top: 0px; text-align: left">这又是一篇关于Javascript的文章，能在浏览器地址栏实现的效果太多了，字体放大、显示所有图片、显示Cookie等等。但这篇文章重点放在&#8220;有趣&#8221;上面，当你无聊的时候，不妨玩玩。原文来自BlogOhBlog。 </span></div>
</div>
<br />
<center><a href="http://partner.funshion.com/partner/download.php?id=1890" target="_blank"><img height="60" src="http://news.newhua.com/Files/newhuagg/funshion50060.gif" width="500" border="0"  alt="" /></a><br />
<br />
</center>
<div id="context_main">酷酷的绝技：5个有趣的IE浏览器地址栏JavaScript代码
<p>这又是一篇关于Javascript的文章，能在浏览器地址栏实现的效果太多了，字体放大、显示所有图片、显示Cookie等等。但这篇文章重点放在&#8220;有趣&#8221;上面，当你无聊的时候，不妨玩玩。原文来自BlogOhBlog。</p>
<p><strong>1、编辑网页</strong><br />
<br />
在地址栏输入下面的代码按enter，网页上所有元素都能变成可编辑状态，你可以移动、调整元素大小。如果你只是讨厌某个网站想发泄一下，我建议你使用NetDisater。<br />
<br />
代码如下：<br />
<br />
javascript:document.body.contentEditable='true'; document.designMode='on'; void 0</p>
<p>这是经重新编辑的google.cn：<br />
<br />
<img alt="" src="http://news.newhua.com/Files/Remoteupfile/2008-7/19/20080719_061916_468_u.jpg" /><br />
<br />
<strong>2、无敌风火轮</strong><br />
<br />
在地址栏运行下面的代码可使页面上所有图片元素一个接一个地转圈。<br />
<br />
这种效果最好的实现地方就是图片搜索了：<br />
<br />
<img alt="" src="http://news.newhua.com/Files/Remoteupfile/2008-7/19/20080719_061956_812_u.jpg" /><br />
<br />
改变代码里的&#8220;img&#8221;成任何网页上有的字符，可以使这些字符做无敌风火轮运动。<br />
<br />
代码如下：<br />
<br />
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.getElementsByTagName("img"); DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+"px"; DIS.top=(Math.cos(R*y1+i*y2+y3)*y4+y5)+"px"}R++}setInterval('A()',5); void(0);<br />
<br />
<strong>3、晃来晃去</strong><br />
<br />
不但是你，浏览器也不是那么喜欢这个javascript。在地址栏运行这个代码后，浏览器会迅速地晃来晃去。代码如下：<br />
<br />
javascript:function flood(n) {if (self.moveBy) {for (i = 200; i &amp;gt; 0;i--){for (j = n; j &amp;gt; 0; j--) {self.moveBy(1,i); self.moveBy(i,0);self.moveBy(0,-i); self.moveBy(-i,0); } } }}flood(6);{ var inp = "D-X !msagro na dah tsuj resworb rouY"; var outp = ""; for (i = 0; i &amp;lt;= inp.length; i++) {outp =inp.charAt (i) + outp ; } alert(outp) ;}; reverse<br />
<br />
如果这个代码无效，请将"&amp;gt;"改成"&gt;"，"&amp;It;'改成"&lt;"。<br />
<br />
<strong>4、计算器</strong><br />
<br />
在地址栏输入下面的代码，可以实现简单的四则运算：<br />
<br />
&nbsp;javascript: alert(34343+3434-222);<br />
<br />
事实上这个代码可以继续简化，比如简化成这样：<br />
<br />
javascript: 34343+3434-222<br />
<br />
<strong>5、防钓鱼验证</strong><br />
<br />
某些钓鱼网站提供的URL和网页本身的URL是不一致的，你可以用下面的代码进行验证，当两个URL相差太大的时候，你就要稍加小心了：</p>
<p>javascript:alert("The actual URL is:tt" + location.protocol + "//" + location.hostname + "/" + "nThe address URL is:tt" + location.href + "n" + "nIf the server names do not match, this may be a spoof.");<br />
<br />
很有趣，不是吗？</p>
</div>
<img src ="http://www.blogjava.net/ebecket/aggbug/300355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-10-30 14:51 <a href="http://www.blogjava.net/ebecket/articles/300355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>asp.net “从客户端检测到有潜在危险的Request.Form值” 处理办法（转）</title><link>http://www.blogjava.net/ebecket/articles/298570.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Fri, 16 Oct 2009 06:17:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/298570.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/298570.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/298570.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/298570.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/298570.html</trackback:ping><description><![CDATA[<div class="blog_content">asp.net开发中，经常遇到&#8220;从客户端检测到有潜在危险的Request.Form 值&#8221;错误提示，很多人给出的解决方案是： <br />
<br />
1、web.config文档&lt;system.web&gt;后面加入这一句： &lt;pages validaterequest="false"/&gt; <br />
示例： <br />
&lt;?xml version="1.0" encoding="gb2312" ?&gt; <br />
&lt;configuration&gt; <br />
&lt;system.web&gt; <br />
&lt;pages validaterequest="false"/&gt; <br />
&lt;/system.web&gt; <br />
&lt;/configuration&gt; <br />
<br />
2、在*.aspx文档头的page中加入validaterequest="false",示例如下： <br />
&lt;%@ page validaterequest="false" language="c#" codebehind="index.aspx.cs" autoeventwireup="false" inherits="mybbs.webform1" %&gt; <br />
<br />
其实这样做是不正确的，会给程序安全带来风险。 <br />
<br />
　　ASP.Net 1.1后引入了对提交表单自动检查是否存在XSS(跨站脚本攻击)的能力。当用户试图用之类的输入影响页面返回结果的时候，ASP.Net的引擎会引发一个 HttpRequestValidationExceptioin。这是ASP.Net提供的一个很重要的安全特性。因为很多程序员对安全没有概念，甚至都不知道XSS这种攻击的存在，知道主动去防护的就更少了。ASP.Net在这一点上做到默认安全。这样让对安全不是很了解的程序员依旧可以写出有一定安全防护能力的网站。 <br />
<br />
　　但是，当我Google搜索 HttpRequestValidationException 或者 "A potentially dangerous Request.Form value was detected from the client"的时候，惊奇的发现大部分人给出的解决方案竟然是在ASP.Net页面描述中通过设置 validateRequest=false 来禁用这个特性，而不去关心那个程序员的网站是否真的不需要这个特性。看得我这叫一个胆战心惊。安全意识应该时时刻刻在每一个程序员的心里，不管你对安全的概念了解多少，一个主动的意识在脑子里，你的站点就会安全很多。 <br />
<br />
　　为什么很多程序员想要禁止 validateRequest 呢?有一部分是真的需要用户输入"&lt;&gt;"之类的字符。这就不必说了。还有一部分其实并不是用户允许输入那些容易引起XSS的字符，而是讨厌这种报错的形式，毕竟一大段英文加上一个ASP.Net典型异常错误信息，显得这个站点出错了，而不是用户输入了非法的字符，可是自己又不知道怎么不让它报错，自己来处理报错。 <br />
<br />
　　对于希望很好的处理这个错误信息，而不使用默认ASP.Net异常报错信息的程序员们，你们不要禁用validateRequest=false。 <br />
<br />
　　正确的做法是在你当前页面添加Page_Error()函数，来捕获所有页面处理过程中发生的而没有处理的异常。然后给用户一个合法的报错信息。如果当前页面没有Page_Error()，这个异常将会送到Global.asax的Application_Error()来处理，你也可以在那里写通用的异常报错处理函数。如果两个地方都没有写异常处理函数，才会显示这个默认的报错页面呢。 <br />
<br />
　　举例而言，处理这个异常其实只需要很简短的一小段代码就够了。在页面的Code-behind页面中加入这么一段代码： <br />
<br />
<br />
protected void Page_Error(object sender, EventArgs e) <br />
{ <br />
Exception ex = Server.GetLastError(); <br />
if (HttpContext.Current.Server.GetLastError() is HttpRequestValidationException) <br />
{ <br />
HttpContext.Current.Response.Write("请输入合法的字符串【&lt;a href=\"javascript:history.back(0);\"&gt;返回&lt;/a&gt;】"); <br />
HttpContext.Current.Server.ClearError(); <br />
} <br />
} <br />
这样这个程序就可以截获 HttpRequestValidationException 异常，而且可以按照程序员的意愿返回一个合理的报错信息。 <br />
<br />
　　这段代码很简单，所以我希望所有不是真的要允许用户输入之类字符的朋友，千万不要随意的禁止这个安全特性，如果只是需要异常处理，那么请用类似于上面的代码来处理即可。 <br />
<br />
　　而对于那些通过 明确禁止了这个特性的程序员，自己一定要明白自己在做什么，而且一定要自己手动的检查必须过滤的字符串，否则你的站点很容易引发跨站脚本攻击。 <br />
<br />
　　关于存在Rich Text Editor的页面应该如何处理? <br />
<br />
　　如果页面有富文本编辑器的控件的，那么必然会导致有类的HTML标签提交回来。在这种情况下，我们不得不将validateRequest="false"。那么安全性怎么处理?如何在这种情况下最大限度的预防跨站脚本攻击呢? <br />
<br />
　　根据微软的建议，我们应该采取安全上称为&#8220;默认禁止，显式允许&#8221;的策略。 <br />
<br />
　　首先，我们将输入字符串用 HttpUtility.HtmlEncode()来编码，将其中的HTML标签彻底禁止。 <br />
<br />
　　然后，我们再对我们所感兴趣的、并且是安全标签，通过Replace()进行替换。比如，我们希望有""标签，那么我们就将""显式的替换回""。 <br />
<br />
<br />
void submitBtn_Click(object sender, EventArgs e) <br />
{ <br />
//将输入字符串编码，这样所有的HTML标签都失效了。 <br />
StringBuilder sb = new StringBuilder(HttpUtility.HtmlEncode(htmlInputTxt.Text)); <br />
//然后我们选择性的允许&lt;b&gt; 和 &lt;i&gt; <br />
sb.Replace("&amp;lt;b&amp;gt;", "&lt;b&gt;"); <br />
sb.Replace("&amp;lt;/b&amp;gt;", "&lt;/b&gt;"); <br />
sb.Replace("&amp;lt;i&amp;gt;", "&lt;i&gt;"); <br />
sb.Replace("&amp;lt;/i&amp;gt;", "&lt;/i&gt;"); <br />
Response.Write(sb.ToString()); <br />
} <br />
<br />
这样我们即允许了部分HTML标签，又禁止了危险的标签。 <br />
<br />
根据微软提供的建议，我们要慎重允许下列HTML标签，因为这些HTML标签都是有可能导致跨站脚本攻击的。 <br />
<br />
<br />
&lt;applet&gt; <br />
&lt;body&gt; <br />
&lt;embed&gt; <br />
&lt;frame&gt; <br />
&lt;script&gt; <br />
&lt;frameset&gt; <br />
&lt;html&gt; <br />
&lt;iframe&gt; <br />
&lt;img&gt; <br />
&lt;style&gt; <br />
&lt;layer&gt; <br />
&lt;link&gt; <br />
&lt;ilayer&gt; <br />
&lt;meta&gt; <br />
&lt;object&gt; <br />
<br />
<br />
可能这里最让人不能理解的是&lt;img&gt;。但是，看过下列代码后，就应该明白其危险性了。 <br />
&lt;img src="javascript:alert('hello');"&gt; <br />
</div>
<img src ="http://www.blogjava.net/ebecket/aggbug/298570.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-10-16 14:17 <a href="http://www.blogjava.net/ebecket/articles/298570.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用 Request.QueryString 接受参数时，跟编码有关的一些问题 </title><link>http://www.blogjava.net/ebecket/articles/298571.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Fri, 16 Oct 2009 06:17:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/298571.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/298571.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/298571.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/298571.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/298571.html</trackback:ping><description><![CDATA[<div class="posttitle"><a href="http://blog.joycode.com/ghj/archive/2007/12/07/112382.joy">使用 <font style="color: blue; background-color: yellow">Request.QueryString</font> 接受参数时，跟编码有关的一些问题</a> </div>
<p>&nbsp;</p>
<p>我们先来看以下几个请求，看a.aspx 页面用<font style="color: blue; background-color: yellow">Request.QueryString</font>接受到的是啥信息？</p>
<table cellspacing="2" cellpadding="2" width="609" border="1">
    <tbody>
        <tr>
            <td valign="top" width="60">&nbsp;</td>
            <td valign="top" width="237">页面URL</td>
            <td valign="top" align="center" width="302"><font style="color: blue; background-color: yellow">Request.QueryString</font>["info"]接受到的值</td>
        </tr>
        <tr>
            <td valign="top" width="60">案例一</td>
            <td valign="top" width="237">a.aspx?info=%25</td>
            <td valign="top" align="center" width="302">
            <p>% </p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="60">案例二</td>
            <td valign="top" width="237">a.aspx?info=%bc%bc%ca%f5</td>
            <td valign="top" align="center" width="302">
            <p>????</p>
            </td>
        </tr>
    </tbody>
</table>
<p>情况分析：</p>
<p><strong>案例一</strong></p>
<p>a.aspx?info=%25 为何 <font style="color: blue; background-color: yellow">Request.QueryString</font>["info"]接受到的值是 % ，而不是 %25，是因为<font style="color: blue; background-color: yellow">Request.QueryString</font> 替我们在接受到值后，做了一次URL解码。 HttpUtility.UrlDecode("%25")&nbsp; 的计算结果就是 % </p>
<p>上面的这个案例一虽然看起来很简单。但是我们在一些特殊场景时候，就会因为这个而极度郁闷。</p>
<p>比如以下几种情况：</p>
<p>你有一个自己的加密算法，而这个加密算法，某些情况下会计算出带百分号的结果，而这个结果你是要通过URL参数的方式传递给其它页面的。<br />
这时候你就苦恼的发现，某些时候某个功能就不能用。</p>
<p>如果解决案例一碰到的情况呢？</p>
<p>解决方案一：</p>
<p><strong>把需要传递的参数传递前作一次 HttpUtility.UrlEncode ，</strong><br />
记得是按照 UTF-8 的编码的 UrlEncode 。这样如果我们希望客户端接受到的是 %25&nbsp; 就应该传递的是 %2525 。</p>
<p>切记，不可在接受方每次接受后，自作聪明的都做一次 UrlEncode 。而是在发送方做 UrlEncode 。<br />
如果接受方接受后作 UrlEncode 的话，就会出现下面情况：<br />
发送方发送 a.aspx?info=%25 ，这时候如果接受方&nbsp; 接受后作 UrlEncode 的话，一切正确<br />
发送方发送 a.aspx?info=% ，这时候如果接受方&nbsp; 接受后作 UrlEncode 的话，则就乱了。</p>
<p>另：这套方案中切记， UrlEncode&nbsp; 和 UrlDecode 的次数应该一一对应。不能多一次，也不能少一次。<br />
有人就会说，这还会出现次数不对应么？ 比如下面情况，一个不留意就很可能出现次数不对应。而出现不是你所期望的情况。<br />
比如我们有这样类似的功能： </p>
<p>a.aspx 页面中，根据传入的 from 参数，自动跳转到 from 参数（用<font style="color: blue; background-color: yellow">Request.QueryString</font>["from"]来接受这个参数）设置的页面。<br />
b.aspx 页面也是同样的逻辑，根据传入的 from 参数（用<font style="color: blue; background-color: yellow">Request.QueryString</font>["from"]来接受这个参数），自动跳转到指定的页面。<br />
c.aspx 页面也是同样的逻辑，根据传入的 from 参数（用<font style="color: blue; background-color: yellow">Request.QueryString</font>["from"]来接受这个参数），自动跳转到指定的页面。<br />
<br />
<br />
这样我们就可能书写下面的链接地址：<br />
a.aspx?from=b.aspx&nbsp; <br />
a.aspx?from=b.aspx?from=c.aspx<br />
a.aspx?from=b.aspx?from=c.aspx?from=http://blog.joycode.com/ghj/</p>
<p>下面再复杂一点，我给下面几个链接，其中都有 a 这个参数，请告诉我 a 这个参数是被那个页面接受到了？<br />
说明：&nbsp; HttpUtility.UrlEncode("&amp;")&nbsp; == "%26"&nbsp;&nbsp;&nbsp;&nbsp; HttpUtility.UrlEncode("%")&nbsp; == "%25"</p>
<table cellspacing="0" cellpadding="2" width="576" border="1">
    <tbody>
        <tr>
            <td valign="top" width="307">地址</td>
            <td valign="top" align="center" width="267">a 参数会被那个页面接受到</td>
        </tr>
        <tr>
            <td valign="top" width="307">a.aspx?from=b.aspx?from=c.aspx&amp;a=1</td>
            <td valign="top" align="center" width="267">a 参数被 a.aspx 页面接受到了</td>
        </tr>
        <tr>
            <td valign="top" width="307">a.aspx?from=b.aspx?from=c.aspx%26a=1</td>
            <td valign="top" align="center" width="267">a 参数被 b.aspx 页面接受到了</td>
        </tr>
        <tr>
            <td valign="top" width="307">a.aspx?from=b.aspx?from=c.aspx%2526a=1</td>
            <td valign="top" align="center" width="267">a 参数被 c.aspx 页面接受到了</td>
        </tr>
    </tbody>
</table>
<p>如果想不明白，就想想下面这句话<br />
每一次用 <font style="color: blue; background-color: yellow">Request.QueryString</font> 获取参数时候，就作了一次 HttpUtility.UrlDecode。<br />
</p>
<p>解决方案二：</p>
<p>不用 <font style="color: blue; background-color: yellow">Request.QueryString</font> ，而是自己实现一个获取查询参数的方法。细节我在案例二讲完后再告诉大家，因为这个解决方案也处理了案例二的一些情况。<br />
</p>
<p><strong>案例二</strong></p>
<p>a.aspx?info=%bc%bc%ca%f5 传给我们的信息其实是使用 GB2312 编码后的&#8220;技术&#8221; 这两个汉字。<br />
不信，你可以用下面表达式计算的结果就是 %bc%bc%ca%f5<br />
HttpUtility.UrlEncode("技术", System.Text.Encoding.GetEncoding("GB2312")) </p>
<p>ASP.net 系统内部，在处理 <font style="color: blue; background-color: yellow">Request.QueryString</font> 等情况时候，都是使用的 UTF-8 的编码，我们如果不存在多系统并存的问题时候，这个问题一点都不存在。<br />
但是，当需要跟其它系统交互式后，问题就可能会出现。<br />
如果你不了解案例二这里情况时，你就会被这个问题苦恼死。</p>
<p>比如下面这两个地址提到的问题：</p>
<p>ASP.net中的Server.UrlEncode函数和ASP中的Server.URLEncode函数返回的值竟然不一样<br />
<a title="http://blog.joycode.com/ghj/archive/2003/10/20/2992.aspx" href="http://blog.joycode.com/ghj/archive/2003/10/20/2992.aspx">http://blog.joycode.com/ghj/archive/2003/10/20/2992.aspx</a>
<p>PHP与aspx之间中文通过URL如何传递？ <br />
<a title="http://topic.csdn.net/u/20071018/19/8a4066af-a08c-4214-91e9-ed4caf977e07.html" href="http://topic.csdn.net/u/20071018/19/8a4066af-a08c-4214-91e9-ed4caf977e07.html">http://topic.csdn.net/u/20071018/19/8a4066af-a08c-4214-91e9-ed4caf977e07.html</a></p>
<p>案例二的解决方案<br />
<strong>使用带编码的 HttpUtility.ParseQueryString 函数</strong></p>
<p>就是采用类似下面代码的方式，来获得指定格式编码的查询文本参数。
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Collections.Specialized.NameValueCollection nv =<br />
System.Web.HttpUtility.ParseQueryString(Request.Url.Query, System.Text.Encoding.GetEncoding("GB2312")); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Write(nv["Tag"]);
<p>&nbsp;</p>
<p>要说我为啥知道上面几种解决方案，是因为我用 Reflector 看了 <font style="color: blue; background-color: yellow">Request.QueryString</font> 的实现代码。在查看代码时候，我们会看到这样一个 internal 方法：<br />
System.Web.HttpValueCollection 类的内部方法：<br />
internal void FillFromString(string s, bool urlencoded, Encoding encoding)</p>
<p>这个内部方法实现了，按需解密查询参数的功能，但是遗憾的是，在QueryString 的处理函数中，强制指定了解析 QueryString 时，必须作一次 HttpUtility.UrlDecode。参看如下代码：</p>
<p>public static NameValueCollection ParseQueryString(string query, Encoding encoding)<br />
{<br />
&nbsp;&nbsp;&nbsp; ...<br />
&nbsp;&nbsp;&nbsp; return new HttpValueCollection(query, false, true, encoding);<br />
}</p>
<p>如果我们不想采用案例一的解决方案一，我们就需要自己写一个解析查询信息的代码。我们完全可以照抄 System.Web.HttpValueCollection 类的 internal void FillFromString(string s, bool urlencoded, Encoding encoding) 方法来改写。但郁闷的是：如果你用 Reflector 察看这个函数的实现时候，Reflector 出来的代码是错误的。正确的方法如下：是在施凡帮助下完成的。</p>
<p><strong>自己实现从 URL 查询文本 Query 中解析出我们自己需要的文本的方法</strong></p>
<p>/// &lt;summary&gt;<br />
/// 根据 URL 中的 查询文本 Query 解析成一个 NameValueCollection<br />
/// 在装配脑袋帮助下 郭红俊 改编自 System.Web.HttpValueCollection 类的内部方法：<br />
/// internal void FillFromString(string s, bool urlencoded, Encoding encoding)<br />
/// &lt;/summary&gt;<br />
/// &lt;param name="query"&gt;需要解析的查询文本&lt;/param&gt;<br />
/// &lt;param name="urlencoded"&gt;解析文本时候是否需要URL解码&lt;/param&gt;<br />
/// &lt;param name="encoding"&gt;解析文本时候，按照那种URL编码进行解码&lt;/param&gt;<br />
/// &lt;returns&gt;&lt;/returns&gt;<br />
public static NameValueCollection FillFromString(string query, bool urlencoded, Encoding encoding)<br />
{<br />
&nbsp;&nbsp;&nbsp; NameValueCollection queryString = new NameValueCollection();<br />
&nbsp;&nbsp;&nbsp; if (string.IsNullOrEmpty(query))<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return queryString;<br />
&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp;&nbsp; // 确保 查询文本首字符不是 ?<br />
&nbsp;&nbsp;&nbsp; if (query.StartsWith("?"))<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; query = query.Substring(1, query.Length - 1);<br />
&nbsp;&nbsp;&nbsp; }
<p>&nbsp;&nbsp;&nbsp; int num1 = (query != null) ? query.Length : 0;<br />
&nbsp;&nbsp;&nbsp; // 遍历每个字符<br />
&nbsp;&nbsp;&nbsp; for (int num2 = 0; num2 &lt; num1; num2++)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int num3 = num2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int num4 = -1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (num2 &lt; num1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch (query[num2])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case '=':<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (num4 &lt; 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; num4 = num2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case '&amp;':<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto BREAKWHILE;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; num2++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<p>&nbsp;&nbsp;&nbsp; BREAKWHILE:
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string name = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string val = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (num4 &gt;= 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name = query.Substring(num3, num4 - num3);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; val = query.Substring(num4 + 1, (num2 - num4) - 1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; val = query.Substring(num3, num2 - num3);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (urlencoded)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; queryString.Add(HttpUtility.UrlDecode(name, encoding), HttpUtility.UrlDecode(val, encoding));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; queryString.Add(name, val);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((num2 == (num1 - 1)) &amp;&amp; (query[num2] == '&amp;'))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; queryString.Add(null, string.Empty);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }
<p>&nbsp;&nbsp;&nbsp; return queryString;
<p>}
<p>用上面的代码，我们就可以按需解析自己需要的查询参数，而不是受限的使用<font style="color: blue; background-color: yellow">Request.QueryString</font> 。
<p><strong>小结</strong>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="color: blue; background-color: yellow">Request.QueryString</font> 替我们件事情：每次接受到参数后，都做 UrlEncode ，并且是按照 UTF-8编码做的 UrlEncode 。 这在大多数情况下没有任何问题，但是一些情况下，会给我们带来麻烦，本文就是分析这些可能给我们带来麻烦的场景，以及解决方法。
<p><strong>参考资料：</strong>
<p>使用 Reflector ; 查看代码时候，碰到的一个Reflector 的bug <br />
<a title="http://blog.joycode.com/ghj/archive/2006/12/06/88646.aspx" href="http://blog.joycode.com/ghj/archive/2006/12/06/88646.aspx">http://blog.joycode.com/ghj/archive/2006/12/06/88646.aspx</a>
<p>解密不同编码的的参数。 <br />
<a title="http://blog.joycode.com/ghj/archive/2006/04/19/74894.aspx" href="http://blog.joycode.com/ghj/archive/2006/04/19/74894.aspx">http://blog.joycode.com/ghj/archive/2006/04/19/74894.aspx</a></p>
<img src ="http://www.blogjava.net/ebecket/aggbug/298571.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-10-16 14:17 <a href="http://www.blogjava.net/ebecket/articles/298571.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>asp.net cookies的使用方法</title><link>http://www.blogjava.net/ebecket/articles/298569.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Fri, 16 Oct 2009 06:16:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/298569.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/298569.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/298569.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/298569.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/298569.html</trackback:ping><description><![CDATA[<div class="blog_content">Response.Cookie("username").value="aa" 写入 <br />
username=Request.Cookies("username").value 读取 <br />
最好用SESSION比较方便 <br />
session("username")="aa" 写入 <br />
username=session("username") 读取 <br />
<br />
C# : <br />
<br />
方法1: <br />
Response.Cookies["username"].Value="gjy"; <br />
Response.Cookies["username"].Expires=DateTime.Now.AddDays(1); <br />
<br />
方法2: <br />
System.Web.HttpCookie newcookie=new HttpCookie("username"); <br />
newcookie.Value="gjy"; <br />
newcookie.Expires=DateTime.Now.AddDays(1); <br />
Response.AppendCookie(newcookie); <br />
<br />
<br />
创建带有子键的cookies: <br />
System.Web.HttpCookie newcookie=new HttpCookie("user"); <br />
newcookie.Values["username"]="gjy"; <br />
newcookie.Values["password"]="111"; <br />
newcookie.Expires=DateTime.Now.AddDays(1); <br />
Response.AppendCookie(newcookie); <br />
<br />
<br />
<br />
cookies的读取: <br />
<br />
无子键读取: <br />
if(Request.Cookies["username"]!=null) <br />
{ <br />
Response.Write(Server.HtmlEncode(Request.Cookies["username"].Value)); <br />
} <br />
<br />
有子键读取: <br />
if(Request.Cookies["user"]!=null) <br />
{ <br />
Response.Write(Server.HtmlEncode(Request.Cookies["user"]["username"].Value)); <br />
</div>
<img src ="http://www.blogjava.net/ebecket/aggbug/298569.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-10-16 14:16 <a href="http://www.blogjava.net/ebecket/articles/298569.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Request.Form的用法</title><link>http://www.blogjava.net/ebecket/articles/298568.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Fri, 16 Oct 2009 06:13:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/298568.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/298568.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/298568.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/298568.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/298568.html</trackback:ping><description><![CDATA[<p><span style="color: #000000">在CS文件中获得对应页面中的下拉框DropDownList_sitebranch值可以有以下几种方法获得：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;siteInfo.FZJGID&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DropDownList_sitebranch.SelectedItem.Value.Trim();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;siteInfo.FZJGID&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Request.Form[</span><span style="color: #800000">"</span><span style="color: #800000">DropDownList_sitebranch</span><span style="color: #800000">"</span><span style="color: #000000">].ToString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;siteInfo.FZJGID&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Request[</span><span style="color: #800000">"</span><span style="color: #800000">DropDownList_sitebranch</span><span style="color: #800000">"</span><span style="color: #000000">].ToString();<br />
<br />
&nbsp;&nbsp;&nbsp;其中Request.Form是&nbsp;ASP.NET&nbsp;获取窗体变量的集合。</span></p>
<p><span style="color: #000000">表单发送在动态网页中占着很重要的地位。例如留言板、论坛的发言区域，就是表单发送。在<span style="color: #00006a">服务器端</span>是如何接收到的呢？ASPX为例，使用Request.Form对象进行接收。它的基本语法是：<br />
变量名=Request.Form("文本域名称")<br />
例如：namh=Request.Form("name")。 </span></p>
<p>之后，在整个程序中就可以无限次地调用namh这个变量。</p>
<p>需要注意的是，<span style="color: #ff0000">Request.Form是接收<strong>post</strong>方法的对象</span>。所以在客户端的表单发送中，一定要注明post方法。步骤是：&lt;form&nbsp; method=post&gt;。</p>
<p><strong>Form </strong>集合通过使用 POST 方法的表格检索邮送到 HTTP 请求正文中的表格元素的值。</p>
<h4>语法</h4>
<pre><strong>Request.Form(</strong><em>element</em><strong>)</strong>[<strong>(</strong><em>index</em><strong>)</strong>|<strong>.Count</strong>] </pre>
<h4>参数</h4>
<dl>
<dt><em>element</em>
<dd>指定集合要检索的表格元素的名称。<br />
<dt><em>index</em>
<dd>可选参数，使用该参数可以访问某参数中多个值中的一个。它可以是 1 到 <strong>Request.Form(</strong><em>parameter</em><strong>).Count</strong> 之间的任意整数。 </dd></dl>
<h4>注释</h4>
<p><strong>Form</strong> 集合按请求正文中参数的名称来索引。<strong>Request.Form(</strong><em>element</em><strong>) </strong>的值是请求正文中所有 <em>element</em> 值的数组。通过调用 <strong>Request.Form(</strong><em>element</em><strong>).Count</strong> 来确定参数中值的个数。如果参数未关联多个值，则计数为 1。如果找不到参数，计数为 0 。</p>
<p>要引用有多个值的表格元素中的单个值，必须指定 <em>index</em> 值。<em>index</em> 参数可以是从 1 到 <strong>Request.Form(</strong><em>element</em><strong>).Count</strong> 中的任意数字。如果引用多个表格参数中的一个，而未指定 <em>index</em> 值，返回的数据将是以逗号分隔的字符串。</p>
<p>在使用 <strong>Request.Form</strong> 参数时，Web 服务器将分析 HTTP 请求正文并返回指定的数据。如果应用程序需要未分析的表格数据，可以通过调用不带参数的 <strong>Request.Form</strong> 访问该数据。</p>
<p><span style="color: #000080">Request.Form和Request.QueryString的Key不区分大小写</span></p>
<img src ="http://www.blogjava.net/ebecket/aggbug/298568.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-10-16 14:13 <a href="http://www.blogjava.net/ebecket/articles/298568.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>request.querystring和request.form的区别</title><link>http://www.blogjava.net/ebecket/articles/298566.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Fri, 16 Oct 2009 06:12:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/298566.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/298566.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/298566.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/298566.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/298566.html</trackback:ping><description><![CDATA[<p>A:</p>
<p>request.querystring&nbsp;是用来接收地址里面？后面的xx=xx的内容&nbsp;<br />
而request.form&nbsp;是用来接收表单递交来的数据&nbsp;<br />
不过我可以告诉你个两全其美的方法&nbsp;<br />
<br />
例如&nbsp;request("offline")&nbsp;<br />
就无论采用的是以上哪种方法的字段值都可以读取了</p>
<p>B:</p>
<p>request.form是指用form递交过来的数据。而request.querystring则是指用URL递交过来的。你用的是login.asp?offline=true，这个当然是URL递交的啦。</p>
<p>C:</p>
<p>Request.Form和Request.QueryString两个接收参数来源不同，前者是接收从表单Form来的参数，后者是从URL来的参数。&nbsp;<br />
<br />
你这有这一句logon.asp?offline=true这是URL的传递参数。&nbsp;<br />
<br />
如果要用Request.Form()的话，那页面至少得有个表单，比如：&nbsp;<br />
<br />
&lt;form&nbsp;name=form1&nbsp;method=post&nbsp;action=logon.asp&gt;&nbsp;<br />
&lt;input&nbsp;type=text&nbsp;name=user&nbsp;value=""&gt;&nbsp;<br />
&lt;/form&gt;&nbsp;<br />
<br />
这样在提交过表单后，就可以用Request.Form("user")得到这个文本框传递过来得数值。</p>
<p>&nbsp;</p>
<p>D:</p>
<div class="f14">request.querystring和request.form的区别&nbsp;<br />
request.querystring是用post方法读取的&nbsp;不安全&nbsp;<br />
request.form是用get方法读取的&nbsp;<br />
form表单中的method中看你是get还是post&nbsp;</div>
<p>&lt;html&gt;&nbsp;<br />
&lt;head&gt;&nbsp;<br />
&lt;meta&nbsp;http-equiv="Content-Type"&nbsp;content="text/html;&nbsp;charset=gb2312"&gt;&nbsp;<br />
&lt;title&gt;无标题文档&lt;/title&gt;&nbsp;<br />
&lt;/head&gt;&nbsp;<br />
<br />
&lt;body&gt;&nbsp;<br />
&lt;p&gt;&nbsp;<br />
&lt;%&nbsp;<br />
if&nbsp;request.querystring("offline")="true"&nbsp;then&nbsp;<br />
session.Abandon()&nbsp;<br />
response.Redirect("login1.htm")&nbsp;<br />
end&nbsp;if&nbsp;<br />
%&gt;&nbsp;<br />
欢迎进入：&lt;%=request.Form("user")%&gt;&lt;/p&gt;&nbsp;<br />
&lt;p&gt;当前联机人数为：&lt;/p&gt;&lt;%=application("onlinenum")%&gt;&nbsp;<br />
&lt;p&gt;&lt;a&nbsp;href=login.asp?offline=true&gt;离开&lt;/a&gt;&lt;/p&gt;&nbsp;<br />
&lt;/body&gt;&nbsp;<br />
&lt;/html&gt;</p>
<img src ="http://www.blogjava.net/ebecket/aggbug/298566.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-10-16 14:12 <a href="http://www.blogjava.net/ebecket/articles/298566.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决下拉菜单会被swf文件遮住的问题</title><link>http://www.blogjava.net/ebecket/articles/297893.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Mon, 12 Oct 2009 06:28:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/297893.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/297893.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/297893.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/297893.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/297893.html</trackback:ping><description><![CDATA[<br />
<br />
若选择了&#8220;<strong>窗口</strong>&#8221;，则输出的Html代码中没有&#8220;&lt;param name="wmode" value="***"&gt;&#8221;代码。<br />
若选择了&#8220;<strong>不透明无窗口</strong>&#8221;，则输出的Html代码中有&#8220;&lt;param name="wmode" value="opaque"&gt; &#8221;<br />
若选择了&#8220;<strong>透明无窗口</strong>&#8221;，则输出的Html代码中有&#8220;&lt;param name="wmode" value="transparent"&gt; &#8221;<br />
<br />
<strong>"窗口"</strong>不会在 <strong style="color: black; background-color: #ffff66">object</strong> 和 embed 标记中嵌入任何窗口相关属性。Flash 内容的背景不透明并使用 HTML 背景颜色。HTML 无法呈现在 Flash 内容的上方或下方。这是默认设置。 <br />
<strong>"不透明无窗口"</strong>将 Flash 内容的背景设置为不透明，并遮蔽 Flash 内容下面的任何内容。"不透明无窗口"将 HTML 内容显示在 Flash 内容的上方或上面。 <br />
<strong>"透明无窗口"</strong>将 Flash 内容的背景设置为透明。此选项使 HTML 内容显示在 Flash 内容的上方和下方。 <br />
<strong>注重</strong>在某些情况下，当 HTML 图像复杂时，透明无窗口模式的复杂呈现方式可能会导致动画速度变慢。</td>
</tr>
</tbody>
</table>
<br />
<br />
<br />
<div>1.被Flash挡住<br />
设置Flash的参数：&lt;param name="wmode" value="opaque"&gt;<br />
&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="468" height="60"&gt;&lt;param name="movie" value=""&gt;<br />
&lt;param name="wmode" value="opaque"&gt;&lt;param name="quality" value="high"&gt;&lt;embed src="" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="468" height="60"&gt;&lt;/embed&gt;&lt;/object&gt;<br />
&lt;div style="position:absolute;left:150;top:50;width:100px;height:50px;background:green"&gt;<br />
&lt;/div&gt;<br />
或者用&lt;param name="wmode" value="transparent"&gt;<br />
&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="468" height="60"&gt;&lt;param name="movie" value=""&gt;<br />
&lt;param name="wmode" value="transparent"&gt;&lt;param name="quality" value="high"&gt;&lt;embed src="" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="468" height="60"&gt;&lt;/embed&gt;&lt;/object&gt;<br />
&lt;div style="position:absolute;left:150;top:50;width:100px;height:50px;background:green"&gt;<br />
&lt;/div&gt;<br />
2.被图片挡住<br />
这个估计是因为图片也放在层中，而图片所在层的Z轴索引值比该层大，所以被挡住，解决办法是更改该层的Z轴索引值至比图片层大。<br />
&lt;div style="position:absolute;left:0;top:20;z-index:2;background:red;width:120px;height:70px"&gt;<br />
1&lt;img src=""&gt;<br />
&lt;/div&gt;<br />
&lt;div style="position:absolute;left:50;top:50;z-index:2;background:green;width:120px;height:70px"&gt;<br />
2&lt;img src=""&gt;<br />
&lt;/div&gt;<br />
&lt;div style="position:absolute;left:90;top:80;z-index:2;background:blue;width:120px;height:70px"&gt;<br />
3&lt;img src=""&gt;<br />
&lt;/div&gt;<br />
3.被表单控件挡住<br />
这个目前还没有完美的解决方法，一般都是在设计排版时就尽量避免这种情况，如果是万不得已，就在层经过表单控件时让表单控件隐藏，过后再让它显示：<br />
&lt;button onClick="oSelect.style.display='none';oLayer.style.display='inline'"&gt;显示层隐藏下拉选项&lt;/button&gt;&lt;button onClick="oSelect.style.display='inline';oLayer.style.display='none'"&gt;显示下拉选项隐藏层&lt;/button&gt;<br />
<br />
&lt;div style="position:absolute;left:0;top:50;z-index:2;background:red;width:120px;height:50px"&gt;<br />
z-index:1&lt;select id="oSelect"&gt;&lt;/select&gt;<br />
&lt;/div&gt;<br />
&lt;div id="oLayer" style="position:absolute;left:30;top:60;z-index:2;background:green;width:120px;height:70px;display:none"&gt;<br />
z-index:2&lt;img src=""&gt;<br />
&lt;/div&gt;<br />
当然还有用优先级别较高的控件来代替层的方法解决，但控件并非是每台机器上都有安装，而且控件的可定制性也差，也就是常说的兼容性问题：<br />
hhctrl.ocx<br />
&lt;OBJECT id=hhctrl type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" codebase="&lt;I&gt;file:&lt;/I&gt;hhctrl.ocx#Version=4,0,0,24" width=80 height=20&gt;<br />
&lt;PARAM name="Command" value="Related Topics, MENU"&gt;<br />
&lt;PARAM name="Button" value="Menu"&gt;<br />
&lt;PARAM name="Item1" value="[X-Eyes];<a href="http://x-lover.com/forums/" target="_blank"><font color="#000000">http://x-lover.com/forums/</font></a>"&gt;<br />
&lt;PARAM name="Item2" value="闪客之吧;<a href="http://www.flash8.net/" target="_blank"><font color="#000000">http://www.flash8.net</font></a>"&gt;<br />
&lt;PARAM name="Item3" value="零刻联盟;<a href="http://www.linkmeng.com/" target="_blank"><font color="#000000">http://www.linkmeng.com/</font></a>"&gt;<br />
&lt;PARAM name="Item4" value="蓝色理想;<a href="http://www.blueidea.com/" target="_blank"><font color="#000000">http://www.blueidea.com/</font></a>"&gt;<br />
&lt;PARAM name="Item5" value="&lt;a href="http://www.5d.cn"&gt;5D多媒体&lt;/a&gt;;<a href="http://www.5d.cn/" target="_blank"><font color="#000000">http://www.5d.cn</font></a>"&gt;<br />
&lt;/OBJECT&gt;<br />
&lt;select&gt;&lt;/select&gt;<br />
window.createPopup()窗口(需要IE5.5+支持)<br />
&lt;SCRIPT&gt;<br />
var oPopup = window.createPopup();<br />
function showPopupWin(){<br />
var oPopBody = oPopup.document.body;<br />
oPopBody.style.backgroundColor = "green";<br />
oPopup.show(50, 120, 180, 65,document.body);<br />
}<br />
&lt;/SCRIPT&gt;<br />
&lt;BUTTON onclick="showPopupWin()"&gt;Click Me!&lt;/BUTTON&gt;&lt;select&gt;&lt;/select&gt;<br />
&lt;iframe src="index.asp"&gt;&lt;/iframe&gt;</div>
<br />
通过设置Div层跟Flash层的z-index并不能使Div层覆盖Flash层。<br />
官方解释：<br />
A Flash movie in a layer on a DHTML page containing several layers may display above all the layers, regardless of the stacking order<br />
(&#8221;z-index&#8221;) of those layers.<br />
解决方案：<br />
1. 修改flash自身属性，适用 Firefox 跟 IE<br />
这种方案需要修改flash代码，使flash在加载时为透明的，所以div层可以覆盖这个flash。<br />
在原来的flash代码中添加&lt;param name=&#8217;wmode&#8217; value=&#8217;transparent&#8217;&gt;<br />
在&lt;embed&gt;中添加属性 wmode＝&#8217;transparent&#8217;<br />
a. 原始的flash代码<br />
&lt;object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' <br />
&nbsp;&nbsp;&nbsp;&nbsp;codebase='<a href="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" target="_blank" rel="external">http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab</a>#version=8,0,0,0' <br />
&nbsp;&nbsp;&nbsp;&nbsp;width='400px' height='340px'&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name='movie' value='<a href="http://blog.ku6.com/ku6_v.swf?id=38752_1011788" target="_blank" rel="external">http://blog.ku6.com/ku6_v.swf?id=38752_1011788</a>' /&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name='quality' value='high' /&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;embed src='<a href="http://blog.ku6.com/ku6_v.swf?id=38752_1011788" target="_blank" rel="external">http://blog.ku6.com/ku6_v.swf?id=38752_1011788</a>' quality='high' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pluginspage='<a href="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" target="_blank" rel="external">http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash</a>' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type='application/x-shockwave-flash' width='400' height='340'&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/embed&gt; <br />
&nbsp;&nbsp; &lt;/object&gt;<br />
b. 修改后的代码<br />
&lt;object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' <br />
&nbsp;&nbsp;&nbsp;&nbsp;codebase='<a href="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" target="_blank" rel="external">http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab</a>#version=8,0,0,0' <br />
&nbsp;&nbsp;&nbsp;&nbsp;width='400px' height='340px'&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name='movie' value='<a href="http://blog.ku6.com/ku6_v.swf?id=38752_1011788" target="_blank" rel="external">http://blog.ku6.com/ku6_v.swf?id=38752_1011788</a>' /&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name='wmode' value='transparent'&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name='quality' value='high' /&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;embed wmode='transparent' src='<a href="http://blog.ku6.com/ku6_v.swf?id=38752_1011788" target="_blank" rel="external">http://blog.ku6.com/ku6_v.swf?id=38752_1011788</a>' quality='high' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pluginspage='<a href="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" target="_blank" rel="external">http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash</a>' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type='application/x-shockwave-flash' width='400' height='340'&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/embed&gt; <br />
&nbsp;&nbsp; &lt;/object&gt;<br />
2. 修改position属性[[BR]][[BR]]<br />
把用来覆盖Flash的Div层设置position:fixed。由于ie不支持fixed，所以这种方式只适用于Firefox。<br />
a. 示例代码<br />
&lt;html&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;head&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;div cover flash with fixed property&lt;/title&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/head&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;body&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div id="cover_div" style="position:fixed;width:100px;height:100px;background-color:blue;"&gt;I cover the Flash.&lt;/div&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;codebase='<a href="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" target="_blank" rel="external">http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab</a>#version=8,0,0,0' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width='400px' height='340px'&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param name='movie' value='<a href="http://blog.ku6.com/ku6_v.swf?id=38752_1011788" target="_blank" rel="external">http://blog.ku6.com/ku6_v.swf?id=38752_1011788</a>' /&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param name='quality' value='high' /&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;embed src='<a href="http://blog.ku6.com/ku6_v.swf?id=38752_1011788" target="_blank" rel="external">http://blog.ku6.com/ku6_v.swf?id=38752_1011788</a>' quality='high' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pluginspage='<a href="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" target="_blank" rel="external">http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash</a>' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type='application/x-shockwave-flash' width='400' height='340'&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/embed&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/object&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/body&gt; <br />
&nbsp;&nbsp; &lt;/html&gt;<br />
3. 使用iframe<br />
使用iframe的方式可以同时支持firefox跟IE，但是实现方式略有不同。<br />
原理都是先用iframe盖住flash，然后设置iframe的z-index使div能盖住这个iframe。<br />
但是在firefox中iframe 默认状态下不能盖住 flash，需要将flash所在层的autoflow属性设为auto，IE下没有此问题。<br />
a. 在firefox中的示例代码<br />
&lt;html&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;head&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;div cover flash with iframe&lt;/title&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/head&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;body&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div id="cover_div" style="position:absolute;width:100px;height:100px;background-color:blue;z-index:9"&gt;I cover the Flash.&lt;/div&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div style="overflow:auto;"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;iframe id="cover_iframe" frameborder="0" style="position:absolute;width:100px;height:100px;z-index:8;"&gt;&lt;/iframe&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;codebase='<a href="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" target="_blank" rel="external">http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab</a>#version=8,0,0,0' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width='400px' height='340px'&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name='movie' value='<a href="http://blog.ku6.com/ku6_v.swf?id=38752_1011788" target="_blank" rel="external">http://blog.ku6.com/ku6_v.swf?id=38752_1011788</a>' /&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name='quality' value='high' /&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;embed src='<a href="http://blog.ku6.com/ku6_v.swf?id=38752_1011788" target="_blank" rel="external">http://blog.ku6.com/ku6_v.swf?id=38752_1011788</a>' quality='high' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pluginspage='<a href="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" target="_blank" rel="external">http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash</a>' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type='application/x-shockwave-flash' width='400' height='340'&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/embed&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/object&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/body&gt; <br />
&nbsp;&nbsp; &lt;/html&gt;<br />
注：<br />
&#8220;&lt;div style=&#8221;overflow:auto;&#8221;&gt;&lt;iframe&gt;&#8230;&lt;/iframe&gt;&lt;object&gt;&#8230;&lt;/object&gt;&lt;/div&gt;&#8221; firefox 中必须使用这种结构才有效<br />
在IE中只需要使iframe与div在一个同一个位置即可。 <br />
<br />
<div class="textbox-title">
<h4>Flash覆盖div（层）解决方案 </h4>
<div class="textbox-label">[ 2008-11-19 09:03 | 作者: <a href="javascript:showuser(1)">Kiven</a> ] </div>
</div>
<div class="textbox-fontsize">字体: <a title="字体: 大" href="javascript:setFontSize(14)">大</a> | <a title="字体: 中" href="javascript:setFontSize(11)">中</a> | <a title="字体: 小" href="javascript:setFontSize(9)">小</a> </div>
<div class="textbox-content" id="textboxContent">有两种方法：一种就是设置flash为透明，但是如果你在DW中插入动画，再加 <br />
<br />
&lt;param name="wmode" value="transparent"&gt; <br />
<br />
是不生效的。要把整个的flash插件代码换成如下： <br />
<div class="code">&lt;object type="application/x-shockwave-flash" data="" width="560" height="210"&gt; <br />
<br />
&lt;param name="movie" value="" /&gt; <br />
&lt;param name="wmode" value="transparent" /&gt; <br />
<br />
&lt;/object&gt;</div>
<br />
<br />
对比一下，和DW自动生成的代码是有区别的，测试过，IE　FF　均可以。 <br />
<br />
<strong>第二种方法：</strong> <br />
<br />
设置flash置底，加个代码：&lt;param name="wmode" value="opaque" /&gt; <br />
<br />
但是只加这个代码，IE可行，在FF下，失效。要想在FF下起作用，还要用在&lt;object　里加个　wmode="opaque" ，实例代码如下： <br />
<div class="code">&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="" width="560" height="210"&gt; <br />
&lt;param name="movie" value="" /&gt; <br />
&lt;param name="quality" value="high" /&gt; <br />
&lt;param name="wmode" value="opaque"&gt; <br />
<br />
&lt;embed src="" wmode="opaque" quality="high" pluginspage="" type="application/x-shockwave-flash" width="560" height="210"&gt;&lt;/embed&gt; <br />
<br />
&lt;/object&gt;</div>
<br />
<br />
<strong>另外一种方法是：</strong> <br />
<br />
将flash object 改变 <br />
<div class="code">&lt;style&gt; <br />
div { <br />
width:100px; <br />
height:100px; <br />
position:absolute; <br />
top:20px; <br />
left:20px; <br />
background:red <br />
} <br />
object { <br />
width:400px; <br />
height:100px; <br />
} <br />
&lt;/style&gt; <br />
<br />
&lt;div&gt;aaaa&lt;/div&gt; <br />
&lt;object type="application/x-shockwave-flash" data=""&gt; <br />
&lt;param name="movie" value="" /&gt; <br />
&lt;param name="wmode" value="transparent" /&gt; <br />
&lt;/object&gt; </div>
<div class="editmark">Tags: <a title="Tags：flash覆盖div（层）解决方案" href="http://www.liuyebo.com/index.php?tag=flash覆盖div（层）解决方案" rel="tag">flash覆盖div（层）解决方案</a> , <a title="Tags：层前后控制" href="http://www.liuyebo.com/index.php?tag=层前后控制" rel="tag">层前后控制</a> , <a title="Tags：层，先后" href="http://www.liuyebo.com/index.php?tag=层，先后" rel="tag">层，先后</a></div>
</div>
<img src ="http://www.blogjava.net/ebecket/aggbug/297893.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-10-12 14:28 <a href="http://www.blogjava.net/ebecket/articles/297893.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2ME网络编程以及网络游戏的实现(组图)</title><link>http://www.blogjava.net/ebecket/articles/291414.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Mon, 17 Aug 2009 01:31:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/291414.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/291414.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/291414.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/291414.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/291414.html</trackback:ping><description><![CDATA[<p>J2ME(Java 2 Micro Edition)是Java 2的一个组成部分，是一种高度优化的Java运行环境，主要针对消费类电子设备的，例如蜂窝电话、可视电话、数字机顶盒和汽车导航系统等等。即J2ME是为消费电子产品和手持设备量身定制的Java专用版本。</p>
<p>J2ME的出现使开发跨平台的消费类电子产品的应用软件成 为可能。Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。它提供了基于HTTP的高级Internet协议，使 移动电话能以Client/Server方式直接访问Internet的全部信息，从而使得不同的Client访问不同的资源。</p>
<p>随着网络技术的发展，在将来的无线通信时代中，大量的网络应用程序将被开发出来去满足无线移动通讯的要求，而要充分的发挥无线移动通讯设备的通信能力，J2ME网络编程就变得尤为重要。</p>
<p>一、使用Tomcat搭建Web服务器</p>
<div id="div3911457" style="text-align: center"><img id="img3911457" alt="" src="http://image3.it168.com//2009/8/12/f03db65a-b8b1-4edc-9ed5-8c283ee1de86.jpg" border="0" /></div>
<p style="text-align: center">图1 网络应用模型</p>
<p>绝大多数的网络应用都是将数据信息保存到DB Server(数据库服务器)， 通过Web Server协调各种客户端的请求与响应，存取数据库中的数据。数据库服务器和Web服务器可能是网络中的1台或多台的设备;客户端可以通过网际中的通用 协议(如http协议)对服务器端进行访问,客户端或者是pc上的web浏览器，或者是移动设备，只要能支持网络通讯的协议就应该能够正确获取服务器端的 资源。</p>
<p>我们首先介绍一下使用Tomcat搭键web服务器,在安装Tomcat 5。0之前首先要下载</p>
<p>j2sdk 、Tomcat 5.0的安装文件</p>
<div id="div9229436" style="text-align: center"><img id="img9229436" alt="" src="http://image3.it168.com//2009/8/12/48085438-69b5-4092-a86d-261c858cb751.jpg" border="0" /></div>
<p style="text-align: center">图2 要准备的安装文件</p>
<p>第1步安装j2sdk 进入欢迎画面</p>
<div id="div2742788" style="text-align: center"><img id="img2742788" alt="" src="http://image3.it168.com//2009/8/12/82576cd1-bbed-46ed-ae37-cc7962c0e9cf.jpg" border="0" /></div>
<p style="text-align: center">图3 J2SE安装界面1</p>
<p>第2步接受相关协议条款,然后选择Next</p>
<div id="div6277096" style="text-align: center"><img id="img6277096" alt="" src="http://image3.it168.com//2009/8/12/5ea927af-7a13-48e9-980a-538122d09456.jpg" border="0" /></div>
<p style="text-align: center">图4 j2SE安装界面2</p>
<p>第3步 选择安装路径，默认为c:\j2sdk1.4.2_05 ，这里我们不变，选择Next，(这个路径很重要，如果我们改变了，一定要记住)。</p>
<div id="div7348814" style="text-align: center"><img id="img7348814" alt="" src="http://image3.it168.com//2009/8/12/57eca743-4a73-40c3-a575-1e735edb87fe.jpg" border="0" /></div>
<p style="text-align: center">图5 j2SE安装界面3</p>
<p>第4步 系统会自动拷贝文件</p>
<div id="div3835675" style="text-align: center"><img id="img3835675" alt="" src="http://image3.it168.com//2009/8/12/df60539b-11bd-4eba-bf54-3ffbf48f1667.jpg" border="0" /></div>
<p style="text-align: center">图6 j2SE安装界面4</p>
<p>第5步 安装完成 单击finish。</p>
<div id="div4984556" style="text-align: center"><img id="img4984556" alt="" src="http://image3.it168.com//2009/8/12/bbc6aca6-a75e-471d-b4ec-97faf4b95f00.jpg" border="0" /></div>
<p style="text-align: center">图7 j2SE安装界面5</p>
<div id="div2187519" style="text-align: center"><img id="img2187519" alt="" src="http://image3.it168.com//2009/8/12/d2da9e9a-c34b-45c7-96b7-97628248a7e2.jpg" border="0" /></div>
<p style="text-align: center">图8 j2SE安装之后的目录结构</p>
<p>第6步 安装Tomcat 5.0，首先进入欢迎界面，单击Next。</p>
<div id="div6209953" style="text-align: center"><img id="img6209953" alt="" src="http://image3.it168.com//2009/8/12/940aabc0-42dc-434b-b708-7a54aab1ec0e.jpg" border="0" /></div>
<p style="text-align: center">图9 Tomcat 安装界面1</p>
<p>第7步 接受相关协议条款,然后选择Next</p>
<div id="div6706302" style="text-align: center"><img id="img6706302" alt="" src="http://image3.it168.com//2009/8/12/87c9cdb5-8c9d-4c71-b4c3-32d9b267b5d9.jpg" border="0" /></div>
<p style="text-align: center">图10 Tomcat 安装界面2</p>
<p>第8步 选择完全安装Full,然后选择Next</p>
<div id="div1866136" style="text-align: center"><img id="img1866136" alt="" src="http://image3.it168.com//2009/8/12/dcd6bbb1-656f-4e2e-b6a2-e826bcd75164.jpg" border="0" /></div>
<p style="text-align: center">图11 Tomcat 安装界面3</p>
<p>第9步 确定安装目录，这里我们确定为C:Tomcat 5.0,然后选择Next</p>
<div id="div206750" style="text-align: center"><img id="img206750" alt="" src="http://image3.it168.com//2009/8/12/8b475bf5-5f0e-4130-9943-6ef5995850c7.jpg" border="0" /></div>
<p style="text-align: center">图12 Tomcat 安装界面4</p>
<p>第10步 确定Web服务器管理员的用户名和密码以及默认的端口，,然后选择Next</p>
<p>用户名 admin</p>
<p>密码 123 (要记住该密码用于对服务器的各种管理)</p>
<p>默认端口 8080</p>
<div id="div1401052" style="text-align: center"><img id="img1401052" alt="" src="http://image3.it168.com//2009/8/12/82429bbe-b8f7-4f44-912c-101058b2e6c7.jpg" border="0" /></div>
<p style="text-align: center">图13 Tomcat 安装界面5</p>
<p>第11步 确定java虚拟机的所在路径，,然后选择Next</p>
<p>路径 C:\j2sdk1.4.2_05 (和我们之前安装JDK的路径要一致)</p>
<div id="div7660700" style="text-align: center"><img id="img7660700" alt="" src="http://image3.it168.com//2009/8/12/ad5aef6c-0f08-4768-a3a3-c9ba3ddfb915.jpg" border="0" /></div>
<p style="text-align: center">图14 Tomcat 安装界面6</p>
<p>第12步 系统自动拷贝文件。</p>
<div id="div3727651" style="text-align: center"><img id="img3727651" alt="" src="http://image3.it168.com//2009/8/12/42eb7d4b-983f-40eb-876b-225a757bd889.jpg" border="0" /></div>
<p style="text-align: center">图15 Tomcat 安装界面7</p>
<p>第13步 安装完成，系统提示是否马上运行，单击Finish，我们会在屏幕的右下角看到Tomcat 5.0的小图标。</p>
<div id="div8588934" style="text-align: center"><img id="img8588934" alt="" src="http://image3.it168.com//2009/8/12/e1b2eeec-8782-4bf7-bfb4-ac19925bb551.jpg" border="0" /></div>
<p style="text-align: center">图16 Tomcat 安装界面7</p>
<p sizset="32" sizcache="4">第14步 双击<a title="屏幕" href="http://product.it168.com/list/b/0107_1.shtml" target="_blank" jquery1250472107859="34">屏幕</a>右下角Tomcat 5.0图标，系统会弹出Tomcat运行窗口，在这个窗口中单击Start开启服务，到此Tomcat 5.0安装完成，可以通过再Web浏览器中输入http://127.0.0.1:8080 检测到欢迎的画面</p>
<div id="div2486647" style="text-align: center"><img id="img2486647" alt="" src="http://image3.it168.com//2009/8/12/32fda087-b50b-4336-a844-e109be2bfeb1.jpg" border="0" /></div>
<p style="text-align: center">图17 Tomcat 安装界面8</p>
<div id="div1724849" style="text-align: center"><img id="img1724849" alt="" src="http://image3.it168.com//2009/8/12/7620dd8b-8856-4e67-81ba-90ee4844d976.jpg" border="0" /></div>
<p style="text-align: center">图18 Tomcat 欢迎画面</p>
<p>安装完成Tomcat以后，下面的工作就是要把磁盘上的文件夹共享为互联网中的虚拟目录，用于客户端的访问。我们在D:创建如下的文件夹结构:</p>
<p>D:mygameWeb (这个目录将作为对外部的虚拟目录用来存放共享的各种资源)</p>
<div id="div452987" style="text-align: center"><img id="img452987" alt="" src="http://image3.it168.com//2009/8/12/e4a9ee62-c330-4b43-8a9f-02172b034f55.jpg" border="0" /></div>
<p style="text-align: center">图19 虚拟目录结构</p>
<p sizset="33" sizcache="4">在浏览器中单击页面左上第三项 Tomcat Manager,这是系统会弹出一个窗口要求我们输入Tomcat 管理的用户名和密码，输入用户名admin 密码123 后，按确定进入Web<a title="服务器" href="http://server.it168.com/" target="_blank" jquery1250472107859="35">服务器</a>管理页面。</p>
<div id="div1276394" style="text-align: center"><img id="img1276394" alt="" src="http://image3.it168.com//2009/8/12/15baa503-6596-4c3a-a13e-f4841ba8eb07.jpg" border="0" /></div>
<p style="text-align: center">图20 用户管理登陆窗口</p>
<div id="div4121596" style="text-align: center"><img id="img4121596" alt="" src="http://image3.it168.com//2009/8/12/b31327af-e58f-4758-8f1b-9fb18c8a5c56.jpg" border="0" /></div>
<p style="text-align: center">图21 Tomcat 管理窗口</p>
<p>在管理界面中的Deploy面板我们输入以下信息:</p>
<p>Context Path(optional): /515game (虚拟目录的名称)</p>
<p>XML Configuration file URL:</p>
<p>WAR or Directory URL: file:d:/mygameWeb (真实的文件夹注意格式和大小写不要错)</p>
<p>填写完成以后单击 Deploy 发布虚拟目录</p>
<p>大功告成，我们可以把资源放到d:mygameWeb这个目录下面通过</p>
<p>http://IP地址:8080/515game/资源名称就可以访问这个服务器上的资源了，</p>
<p>如：http://127.0.0.1:8080/515game/myweb.html</p>
<p>http://127.0.0.1:8080/515game/back0.png</p>
<p>http://127.0.0.1:8080/515game/kk.wav</p>
<p>假如这台主机在公网的IP地址为221.196.125.11 在互联网中可以过以下地址来访问：</p>
<p>http://221.196.125.11:8080/515game/myweb.html</p>
<p>http://221.196.125.11:8080/515game/back0.png</p>
<p>http://221.196.125.11:8080/515game/kk.wav</p>
<p>在j2me中提供了访问网络的相关类，封装到了javax.microedition.io里面提供了相关类，下面我们通过实例介绍如果通过GCF来让j2me的客户端获取Web服务器缎的资源。</p>
<img src ="http://www.blogjava.net/ebecket/aggbug/291414.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-08-17 09:31 <a href="http://www.blogjava.net/ebecket/articles/291414.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>建一个别人进不了删不掉的绝密文件夹</title><link>http://www.blogjava.net/ebecket/articles/290651.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Tue, 11 Aug 2009 02:28:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/290651.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/290651.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/290651.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/290651.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/290651.html</trackback:ping><description><![CDATA[<p>建立一个别人既无法进入又无法删除的文件夹 </p>
<p>相信大家都遇到过自己的一些隐私文件不愿意让别人看到的情况吧，怎么解决呢？隐藏起来？换个名字？或者加密？这些办法都可以办到，其实还有一种方法，就是建立一个别人既不能进入又不能删除的文件夹，把自己的隐私文件放进去，别人就看不到啦，下面讲讲如何实现，很简单的。 </p>
<p>第一步：在运行中输入cmd，回车，打开命令行窗口 </p>
<p>第二步：在命令行窗口中切换到想要建立文件夹的硬盘分区，如D盘 输入：d: </p>
<p>第三步：输入md 123..\ 回车，注意文件夹名后有2个小数点 </p>
<p>OK，搞定，看看你的D盘下面是不是多了一个名为123.的文件夹了？它是既不能进入又不能被删除的！不信你就试试看吧^_^ </p>
<p>那么，如果自己想删除或者进入这个文件夹，又应该如何操作呢？同样也很简单。 </p>
<p>如果想删除，在命令行窗口中输入 rd 123..\ 回车，即可删除，当然删除前请确认里面的文件都是不需要的，不要删错了，呵呵。 </p>
<p>如果想进入，在命令行窗口中输入 start d:\123..\ 注意这里一定要是文件夹的绝对路径，否则无法打开即可打开此文件夹，你就可以随心所欲的把不想让别人看到的资料放进去啦！<br />
<br />
<br />
遭遇&#8220;小数点&#8221;文件夹木马<br />
</p>
<div class="post-body dlink">
<p>文章标题写的可能有点容易误解，但不知道取个什么名字比较合适，姑且这个就这标题把，还是来个稍微具体点的描述：今日登入我的VPS，发现一个ASP站点的JS文件和一些ASP文件被植入了iframe木马，汗一个（好在我的服务器上站点都是独立IIS用户权限，不然更惨），google一搜索网站域名，马上看到了&#8220;该网站可能含有恶意软件，有可能会危害您的电脑。&#8221;一行小字，再汗！这个问题很严重。</p>
<p>莫非网站程序有漏洞？很有可能，这个在网上找个一个垃圾asp程序随便放上去了，正好也没有兴趣了，决定把这个站点直接删掉，我也懒得一个个清除iframe代码了，谁知接下来遇到麻烦了：网站目录删除不掉，也不能移动到其他磁盘，而弹出一个莫名其妙的对话框：这真奇怪了，我还是第一次遇到这样的问题。 <img title="" alt="" src="http://www.ajaxbbs.net/upload/2009/2/200902161754418545.jpg" onload="ResizeImage(this,520)" /> </p>
<p>没办法直接全部删掉，于是开始一个文件一个文件删除，删了一会发现了一个奇怪的目录删除不掉，名字叫&#8220;1.&#8221;，突然想到之前在学校时貌似在网上看过有关无法删除的&#8220;小数点&#8221;文件夹的文章，马上网上查找了相关文章，终于找到了解决办法。</p>
<p>这个小数点文件夹其实是Windows系统存在的一个bug，因为不容易被删除而且很隐蔽，因此经常为一些入侵者利用存放一些木马之类的文件。虽然我们不能像删除普通文件一样删除这种文件夹，但总归有删除办法的。懂得了这种文件的创建原理，删除自然就好办了。有关该原理的介绍具体可以看《<img style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 3px 5px -3px; width: 16px; padding-top: 0px; height: 16px" height="16" src="http://www.cbifamily.com/favicon.ico" width="16"  alt="" /><a class=" external" title="External link: www.cbifamily.com" href="http://www.cbifamily.com/software/softsystem/2008-06-27/1214536012d14812.html" target="_blank">建一个别人进不了删不掉的绝密文件夹</a>》这篇文章。删除办法为：在CMD下通过rd命令+文件名+"./"来删除，如果文件夹下有文件需要先删掉内部的文件（一般为木马文件），那么如何进入这个文件夹呢？可以通过&#8220;start+目录的绝对路径&#8221;命令进入，如：start d:\web\sites\1..\。</p>
<p>仔细看了下我的那个站点，居然被建了三个这样的文件夹，每个文件中放了一个asp木马，这人真强悍，不过这个网站从此就消失了，那位高人对不住了。一点小心得，记录备忘。</p>
</div>
<p>、</p>
<img src ="http://www.blogjava.net/ebecket/aggbug/290651.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-08-11 10:28 <a href="http://www.blogjava.net/ebecket/articles/290651.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ie浏览器下的js脚本调试工具 Microsoft Script Debugger </title><link>http://www.blogjava.net/ebecket/articles/288909.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Wed, 29 Jul 2009 09:02:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/288909.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/288909.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/288909.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/288909.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/288909.html</trackback:ping><description><![CDATA[<p>http://blog.csdn.net/webfed/archive/2009/01/29/3854672.aspx<br />
脚本调试工具 Microsoft Script Debugger ，配合IE在调Ajax脚本代码时用得到，用 debugger; 设断点。安装后，将Internet 选项-&gt;高级-&gt;禁用脚本调试(Internet Explorer) 前的&#8220;&#8730;&#8221;去掉。<br />
安装包下载地址：<br />
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=E606E71F-BA7F-471E-A57D-F2216D81EC3D<br />
或http://www.cnblogs.com/Files/pcjim/Microsoft Script Debugger.rar</p>
<p>&nbsp;</p>
<p><br />
經常可以在 IE 左下角看到警告圖示吧，為了讓網頁瀏覽更順利，IE7 已將指令偵錯停用，JavaScript 錯誤發生時只在左下角顯示警示符號，這是給程式人員參考用的。</p>
<p>如何開啟 IE 的指令偵錯呢? 在 [網際網路選項 &gt; 進階] 你可以找到這個選項，將它取消勾選：</p>
<p><br />
&nbsp;<br />
&nbsp;</p>
<p>設定好之後並重新啟動 IE，再瀏覽一次錯誤的網頁，偵錯訊息就會跳出來了，因為很多網頁 JavaScript 都有問題，建議平常瀏覽還是把它關掉，有需要時再開啟。</p>
<p>接下來，按下[是]並不會進行偵錯，問題在於偵錯工具還沒安裝，你可以在以下網址找到 Windows 的偵錯工具</p>
<p>&nbsp;</p>
<p>安裝完畢，再瀏覽一次錯誤網頁，按下[是]之後，Microsoft Script Debugger 已經可以明確指出 JavaScript 出錯的位置。</p>
<p>&nbsp;</p>
<p><br />
本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/webfed/archive/2009/01/29/3854672.aspx</p>
<img src ="http://www.blogjava.net/ebecket/aggbug/288909.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-07-29 17:02 <a href="http://www.blogjava.net/ebecket/articles/288909.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JScript 8.0</title><link>http://www.blogjava.net/ebecket/articles/288907.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Wed, 29 Jul 2009 08:52:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/288907.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/288907.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/288907.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/288907.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/288907.html</trackback:ping><description><![CDATA[<div class="majorTitle">JScript 8.0<!----></div>
<div class="title">JScript<!----></div>
<br />
http://msdn.microsoft.com/zh-cn/library/72bd815a(VS.80).aspx
 <img src ="http://www.blogjava.net/ebecket/aggbug/288907.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-07-29 16:52 <a href="http://www.blogjava.net/ebecket/articles/288907.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 前端开发必备工具</title><link>http://www.blogjava.net/ebecket/articles/288905.html</link><dc:creator>becket_zheng</dc:creator><author>becket_zheng</author><pubDate>Wed, 29 Jul 2009 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/ebecket/articles/288905.html</guid><wfw:comment>http://www.blogjava.net/ebecket/comments/288905.html</wfw:comment><comments>http://www.blogjava.net/ebecket/articles/288905.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ebecket/comments/commentRss/288905.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ebecket/services/trackbacks/288905.html</trackback:ping><description><![CDATA[转自：<br />
http://blog.csdn.net/webfed/archive/2009/01/29/3854677.aspx<br />
<br />
&nbsp;<br />
<p>做设计和前台开发三年了，整理一下好的经验和工具共享给各位来我博客的网友，谢谢光临我的博客</p>
<p>=================================2009年1月22日更新==========================</p>
<p>HttpFox 抓包工具【FF插件】</p>
<p>类似IE的HttpWatch 或 IEInspector ，使用方法也差不多，</p>
<p>介绍下载请参见：http://www.css88.com/article.asp?id=606</p>
<p><br />
漂亮、免费的取色器 Adesclrpicker </p>
<p>实用方便，还有取色记忆功能，</p>
<p>介绍下载请参见：http://www.css88.com/article.asp?id=605</p>
<p>=================================2009年1月8日更新==========================</p>
<p>前端开发桌面终极工具（FastStone Capture）推荐</p>
<p>主要用于截屏，截图，量尺寸，取色。</p>
<p>介绍下载请参见：http://www.css88.com/article.asp?id=591</p>
<p>=================================2008年8月5日更新==========================</p>
<p>介绍2款前端小工具【取色工具和量距离工具】</p>
<p><br />
1.取色工具——TakeColor</p>
<p>2.量距离工具（像素）</p>
<p>介绍下载请参见：http://www.css88.com/article.asp?id=483<br />
=================================2008年7月17日更新==========================</p>
<p>JavaScript调试器VenKman【firefox插件】</p>
<p><br />
=================================2008年5月23日更新==========================</p>
<p>26.IE WebDeveloper V2.3.2.108：点击下载</p>
<p>一款用于IE浏览器的插件，允许直接地在浏览器窗口中浏览、传输和更新HTML DOM。该软件可以实时分析网页并且显示为一种允许你察看表格风格、Java脚本，表格以及其它网页元素的树形风格。该软件还可以在浏览器中交互式地突出显示被选择的网页元素，因此你可以在实际网页中定位其代码</p>
<p>其详细介绍见：IE DOM查看工具,IE Web Developer V2 破解版本</p>
<p>注册码:88ZWT-71C2D4E621BD3D4A</p>
<p>=================================2008年5月6日更新==========================</p>
<p>25.IETester-同时拥有IE6、IE7、IE8（Vista兼容）</p>
<p>具体参见：http://www.css88.com/article.asp?id=361</p>
<p>虽然以前我写过IE6、IE7、IE8共存的解决方案，但是看到IETester这个软件以后那些都已经没有意义了（那些办法副作用比较大，而且实现起来有些难度）。使用IETester能够较好的解决，测试网页兼容性的多IE版本的需求。暂时已经支持IE5.5——IE8beta1，我想这已经足够了。还在苦苦找寻IE6和IE7共存或者IE7和IE8共存的朋友，可以试试这个软件。当然这个软件也不是万能的，在最后，官方非常厚道的给出了暂时存在的重要bug列表。</p>
<p>推荐理由：</p>
<p>1同时拥有IE 5.5、IE6、IE7、IE8</p>
<p>2.常用的IE6绿色版不能在Vista上使用</p>
<p>=================================2008年4月28日更新==========================</p>
<p>二十四 搜索引擎——百搜吧（http://www.baiso8.com）</p>
<p>&nbsp;</p>
<p>直接搜索网址：http://www.baiso8.com/</p>
<p>http://www.baiso8.com/so/baiso.htm</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 做我们这行搜索少不了，碰到有什么问题就要马上google或者百度一下，找一些相关的资料。读书那会有问题就跑图书馆，工作之后就用搜索，不过有些时候google搜不到，又得用百度，要搜图片什么的还要点来点去麻烦，做这行效率是很关键的，提高效率、节约生命嘛！<br />
发现一个很好的网站：百搜吧。输入一次关键字能同时搜索百度、谷歌、雅虎三大搜索引擎及国内知名网站和专业网站的资源，具备根据您自己的需要自定义搜索引擎偏好，随时切换网页、电影、新闻、娱乐、图像、音乐、视频、论坛、博客、词典等专业搜索，保存您的搜索历史记录，中英文界面切换等人性化功能...</p>
<p>=================================2008年3月27日更新==========================</p>
<p>二十三 Fiddler<br />
一个很强大的http流查看工具<br />
http://www.fiddlertool.com/fiddler/</p>
<p>二十二 Httpwatch<br />
数据分析工具,头消息接受/发送的查看,POST数据查看.等等<br />
http://www.httpwatch.com</p>
<p>二十一 IE Developer Toolsbar<br />
IE下的FireBug.HTML及CSS调试工具<br />
http://www.windowsmarketplace.com/details.aspx?itemid=2695980</p>
<p>二十 Companion.JS<br />
IE下的javascript调试工具.福音啊!福音啊!!福音啊!!!<br />
http://www.my-debugbar.com/wiki/CompanioNJS/HomePage</p>
<p>十九 FireBug<br />
强的没话说了已经....如果你不知道这是什么....那我更没话说了....<br />
https://addons.mozilla.org/en-US/firefox/addon/1843</p>
<p>转载请注明出处：http://www.css88.com/</p>
<p>十九 Web Developer<br />
FireFox下的查看工具,可以查看JS,CSS等页面信息<br />
https://addons.mozilla.org/en-US/firefox/addon/60</p>
<p>十八 YSlow<br />
why slow?页面性能优化查看器.基于FireBug<br />
http://developer.yahoo.com/yslow</p>
<p>十七 Javascript Debugger<br />
FireFox下的javascript调试工具,比FireBug有更强大的调试功能.<br />
https://addons.mozilla.org/en-US/firefox/addon/216<br />
&nbsp;</p>
<p>转载请注明出处：http://www.css88.com/<br />
&nbsp;</p>
<p>十六 Opera Developer Tools<br />
Opera下的DOM,CSS查看工具,类似FireBug.<br />
http://dev.opera.com/articles/view/opera-developer-tools/</p>
<p>转载请注明出处：http://www.css88.com/</p>
<p>十五 webkit<br />
Safari下的开发调试工具<br />
http://nightly.webkit.org/</p>
<p>转载请注明出处：http://www.css88.com/</p>
<p>=================================2008年3月15日更新===========================</p>
<p>十四 JavaScript 压缩工具<br />
&nbsp;这程序是由Mike Hall写的，JavaScript的压缩不是为了保护代码而压缩，而是压缩后的js代码文件可以小一倍甚至多倍，从而使这个js代码快速的下载到客户端，特别js文件较大时速度效果非常明显． </p>
<p>使用方法：<br />
&nbsp; 使用下面的表单,你可以浓缩JavaScript代码.只用将任何脚本代码粘贴到输入的文本框,压下 '压缩' 按钮,那浓缩的版本就出现在 '输出' 里. 然后你可以使用 '全选' 按钮,快速选中'输出'里的代码,剪切粘贴到一个新的源码文件. </p>
<p>点击查看 http://www.css88.com/ysjs/ysjs.html</p>
<p>转载请注明出处：http://www.css88.com/</p>
<p>=================================2008年3月5日更新===========================</p>
<p>十三 web开发利器Aptana </p>
<p>点击查看 http://www.css88.com/article.asp?id=190</p>
<p>&nbsp;转载请注明出处：http://www.css88.com/</p>
<p>=================================2008年3月1日更新===========================</p>
<p>十二 Javascrīpt开发工具大集合</p>
<p>http://www.css88.com/article.asp?id=186</p>
<p>=================================2008年2月25日17:55:27更新===========================</p>
<p>转载请注明出处：http://www.css88.com/</p>
<p>十— 前端开发工具箱——抓色工具(ColorPic)</p>
<p><br />
名称：ColorPic<br />
大小：400k</p>
<p>下载地址：http://www.css88.com/article.asp?id=182</p>
<p>备注：绿色，解压即可使用。</p>
<p>特点：<br />
有方案的概念，可以建立多组方案。<br />
强大的色盘功能，多种方式可以选择。<br />
吸色时，局部放大（放大比率可以自己调整），方便抓取细微部分的颜色。<br />
使用Ctrl+G快捷键取色。</p>
<p>截图：</p>
<p>===============================================================================</p>
<p>转载请注明出处：http://www.css88.com/</p>
<p>一、搜索引擎——百度（http://www.baidu.com）</p>
<p>二、测试浏览器——同时拥有IE7、IE6、IE5.5</p>
<p>自从IE7出来，IE6和IE7的测试就成了问题，同一台电脑不能同时安装IE7和IE6，前台开发长久的痛啊！</p>
<p>哈哈，皇天不负有心人，终于有解决办法了，码头现在提供IE6破解绿色版下载，国外网站下载的，从ie的第一个版本到IE6都有的，现在提供IE6和IE5.5的破解绿色版下载</p>
<p>IE6的破解绿色版点击下载：点击下载此文件</p>
<p>IE5.5破解绿色版点击下载：点击下载此文件</p>
<p>&nbsp;转载请注明出处：http://www.css88.com/</p>
<p>三、XHTML、CSS、标准代码检测</p>
<p>做网页的朋友应该都去过 http://validator.w3.org/ 和 http://jigsaw.w3.org/css-validator/。现在有人把他们集成到了一起，搞了一个网站叫 &#8220;XHTML-CSS Validator&#8221;，点击旁边的 &#8220;Advanced&#8221; ，还可以选择校验文档类型、CSS版本等等，有兴趣可以试试。<br />
&nbsp;</p>
<p>————————————2007年12月23日1:10:18更新————————————————</p>
<p>看不懂英文的兄弟请用http://jigsaw.w3.org/css-validator/（中文的）检测css</p>
<p><br />
另：建议先使用DreamWeaver或vs2008本地检测一下；</p>
<p>&nbsp;转载请注明出处：http://www.css88.com/</p>
<p>四、JS脚本调试和书写工具——vs2008</p>
<p>======================================2008年3月1日18:56:00==========================</p>
<p>VS 2008已有正式版本</p>
<p>文件详情： Visual Studio Team System 2008 Team Suite<br />
软件版本： 2008简体中文正式版（试用版）<br />
文件格式： RAR 压缩文档<br />
文件大小： 4.24 GB<br />
发布日期： 2008.2.9<br />
官方网站： http://msdn.microsoft.com/vstudio</p>
<p><br />
免责声明：</p>
<p>下载地址为90天试用版（官方正式简体中文），只要按上面的说明更换CDKey即可完美升级为正式版。7个分卷压缩包均需下载才能正常安装，包含MSDN。前面6个压缩包均为700M，最后一个压缩包为142M</p>
<p>VS2008下载页面：&nbsp; 分卷压缩包1&nbsp;&nbsp; 分卷压缩包2&nbsp;&nbsp;&nbsp; 压缩包3&nbsp;&nbsp;&nbsp; 压缩包4&nbsp;&nbsp;&nbsp; 压缩包5&nbsp;&nbsp;&nbsp; 压缩包6&nbsp;&nbsp;&nbsp; 压缩包7<br />
&nbsp;</p>
<p>　VS2008破解方法非常简单，在开始&gt;设置&gt;控制面版&gt;添加或删除程序&gt;卸载vs.net2008＞出现卸载界面＞点击Next＞输入上面CD-key -&gt;出现成功画面即可完美将试用版升级成为正式版。</p>
<p>VS2008正式版序列号CDKEY：PYHYP-WXB3B-B2CCM-V9DX9-VDY8T</p>
<p>转载请注明出处：http://www.css88.com/</p>
<p>======================================2008年3月1日18:56:00==========================</p>
<p>VS 2008不再是程序员专用工具，VS 2008可以非常完美地支持JavaScript和ASP.NET AJAX的智能感知和调试。.NET 3.5内置了ASP.NET AJAX，并且UpdatePanel终于可以支持WebPart了。</p>
<p>VS2008 beta2简体中文版下载：</p>
<p>下载地址：<br />
&nbsp;TFS: http://www.microsoft.com/downloads/details.aspx?FamilyId=053E83D0-DEB4-4EBB-B4C8-CBFFE928B4AA&amp;displaylang=zh-cn</p>
<p>VSTS: http://www.microsoft.com/downloads/details.aspx?FamilyId=428C076F-E3EF-4290-9FF4-F6FD8F180B7D&amp;displaylang=zh-cn</p>
<p>微软发布页面：http://www.microsoft.com/downloads/details.aspx?FamilyID=428c076f-e3ef-4290-9ff4-f6fd8f180b7d&amp;DisplayLang=zh-cn<br />
&nbsp;转载请注明出处：http://www.css88.com/</p>
<p>五、火狐插件</p>
<p>前台开发我认为必装的火狐插件</p>
<p>1.CSSViewer 1.0.2<br />
看具体DOM的CSS，Web开发者可以用。</p>
<p>2.Firebug 1.05<br />
调试JS的利器，同时也可进行一些简单的DOM Hook。特爽。<br />
唯一的缺陷就是狂吃资源，如果不是Debug时间，最好把它disable掉</p>
<p>3.JSView 1.2.9<br />
我人为非常重要的，可以查看当前页面的外埠js和css，这对开发者来说很重要。</p>
<p>4.Web Developer 1.1.3<br />
功能上可能跟Firebug有一些重叠，但是也很强大</p>
<p>5.还有好的话请大家留言，我更新。。。</p>
<p>&nbsp;转载请注明出处：http://www.css88.com/</p>
<p>&nbsp;六、flash破解——ASV</p>
<p>Action Script Viewer（简称ASV） 可以分析 Flash 文件(.swf)文件的内部结构，并将其中的动作脚本(action scripts)分解出来，软件支持 Flash 3 4 5 及最新的 MX 制作的 swf 文件，分解出的动作脚本可以保存为文本格式，在编辑过程中可以随时对 Flash 文件进行预览。4.0版支持Macromedia Flash 4, 5 , MX , MX 2004和flash 8的 SWF 文件。</p>
<p>ASV5详细教程<br />
1.从Action Script Viewer 5.0 中打开要"还原"的.swf文件。 <br />
2.文件菜单 &gt; 导出重建数据 <br />
file &gt; Export Rebuild data(JSFL) <br />
3.导出数据到指定文件夹 <br />
4.打开Flash, 新建Flash文件, 将刚才文件夹中的SWF/MP3/WAV/FLV文件全部导入到库中(不要导入到场景<br />
5.确认后保存文件, 将文件命名为"rebuild.fla" . 目的是于.jsfl文件同名 . 保存后关闭该文件。 <br />
6.然后打开"rebuild.jsfl"文件 (不要从Flash中用打开命令, 简单的方法是从文件夹中双击，此时Flash的时间轴/工具栏哗啦啦的闪)</p>
<p>保存该FLA文件, 然后用Ctrl+Enter发布。</p>
<p>Action Script Viewer 5.0 可以还原flash8的swf</p>
<p>目前可供下载的最高版本：Action Script Viewer v5.01（点击下载）</p>
<p>&nbsp;转载请注明出处：http://www.css88.com/</p>
<p>七、CSS整形工具——使用CSSTidy 1.2</p>
<p>我们在写CSS样式的时候通常会根据自己的一些习惯来写，比如有些时候不会使用样式缩写，样式格式随意，大小写不分（另存下来的样式是大写的）等等；</p>
<p>晚上有一种CSS整形工具叫CSSTidy 1.2大家可以使用一下，可以优化你写的样式，特备是节省字节方面效果显著；</p>
<p>点击进入CSS整形工具CSSTidy 1.2</p>
<p>&nbsp;转载请注明出处：http://www.css88.com/</p>
<p>八、IE插件——IE DeveloperToolbar 1.0</p>
<p>愚人码头个人观点：建议使用上面的火狐插件，如果你死活没有用火狐的习惯那就用IE的这个插件</p>
<p>在经历了一年半的测试期之后，微软5月正式发布了其IE Developer Toolbar最终正式版，支持IE6/7。微软开发者工具条可以让开发人员更为方便的分析网页结构，调整包括CSS在内的各种特定元素，帮助开发者更好地创建Web应用。 <br />
　　微软此次发布的1.0版相较Beta 3测试版并无新鲜元素加入，按照微软的说法，1.0版本主要改善了可靠性更适合作为一个正式版本来发布。</p>
<p>&nbsp;</p>
<p>&nbsp;<br />
IEDeveloperToolbar特性如下： <br />
　　－浏览和修改Web页的文档对象模型（DOM）。 <br />
　　－通过多种技术方式定位、选定Web页上的特定元素。 <br />
　　－禁止或激活IE设置。 <br />
　　－查看HTML对象的类名、ID，以及类似链接路径、tab顺序、快捷键等细节。 <br />
　　－描绘表格、单元格、图片或选定标签的轮廓。 <br />
　　－显示图片象素、大小、路径、替代文字等。 <br />
　　－即时重定义浏览器窗口大小到800x600或自定义大小。 <br />
　　－清空浏览器缓存和cookie，被清除项可从所有对象或给定域中选择。 <br />
　　－直接访问关联W3C规范参考、IE开发组blog或其他来源。 <br />
　　－显示设计时标尺，帮助对齐对象。</p>
<p><br />
插件使用方法:在IE菜单的"查看" -&gt; "浏览器栏" 里面钩选&#8220;IE Developer Toolbar&#8221;即</p>
<p>汉化方法:<br />
1.先安装原版将IEDevToolbar<br />
2.关闭所有IE浏览器<br />
3.将IEDevToolbar.dll文件替换X:\Program Files\Microsoft\Internet Explorer Developer Toolbar<br />
中的IEDevToolbar.dll文件.X为你的系统盘.<br />
4.重新打开IE.</p>
<p>点击下载IE DeveloperToolbar 1.0(web前台开发利器)汉化版</p>
<p>=========================以下2008年1月26日1:32:57更新===========================</p>
<p>转载请注明出处：http://www.css88.com/</p>
<p>九、参看手册</p>
<p>JavaScript参考手册</p>
<p>说明：JavaScrip必备宝典</p>
<p>下载地址：http://www.alixixi.com/Down/eBook/Manual/2007/20070301109.html</p>
<p>2.CSS参考手册</p>
<p>说明：苏沈小雨css2.0中文手册，页面开发人员必备手册</p>
<p>下载地址：http://www.div-css.com/html/download/books/00444.html</p>
<p>转载请注明出处：http://www.css88.com/</p>
<p>十、Beyond Compare v2.52 Build 252 简体中文版</p>
<p>说明：Beyond Compare 是一款不可多得的专业级的文件夹和文件对比工具。使用他可以很方便的对比出两个文件夹或者文件的不同之处。并把相差的每一个字节用颜色加以表示，查看方便。并且支持多种规则对比。对软件汉化者来说，这绝对是一款不可多得的工具。</p>
<p>下载地址：http://www.crsky.com/soft/2975.html</p>
<p>注册码：<br />
urKH3mXZVDiTNgCKQnFnfvaQB5tTtahvtUr5HqwT9YZu50+b3T9bkzYKwKsfjhhiDgzR9Dr5qbmJ2EmNzYfSAptuo90Ga7NTytXRVPnH-nTye3q+vgdqSmegWMmJmaU9VsqLQNrNfxx1QLBNDdNpUBxrcdm6TPbh8-NYzpYCJmQXJOkTOb7MgovRGiJLLuTN7mpUKRcaT8uxfx1ej+sSKj4JMFGCTSzS+B2L7lKPzT6LKV8oQgg3vGcrU+Y857A2</p>
<p>qi 其他内容陆续更新中，敬请期待。。。</p>
<p>一个强大的新工具现在提供给使用基于Mozilla的系列浏览器（包括Firefox，Mozilla套件和Netscape 7.x）的Web开发人员。JavaScript调试器，又名&#8220;Venkman&#8221;，已经成为Mozilla浏览器、Web社区和脚本开发人员的一部分很长时间了。这篇文档提供一个JavaScript调试器的概览和一些在Web页面脚本开发中使用它的实际例子。这篇&#8220;入门&#8221;是一系列关于Venkman文档的第一篇。假设你已经开始使用Venkman，这里所提到的特性、程序和要点会让你作为一个Web开发人员或脚本调试者更加自信。</p>
<p>Venkman是一个同时拥有控制台界面和图形界面的调试器。你可以根据自己的喜好或特长，从控制台界面或图形界面使用&#8220;断点控制&#8221;，&#8220;调用栈&#8221;和&#8220;变量/对象监视器&#8221;。交互式的命令行界面允许你执行任何可用的JavaScript代码。Venkman的键盘快捷键可用于可视化的调试环境，gdb用户对于Venkman的/break，/step，/next，/finish，/frame，/where命令一定非常熟悉。</p>
<p>在Windows平台上上，JavaScript调试器的界面外观和Visual Interdev以及其它大型的web开发工具是很相似的。在其它操作系统平台上，如Mac OS和Unix，它提供了一个在易用性、性能居于同等水平上的独特的开发调试环境。</p>
<p>下载，基础教程：http://www.css88.com/article.asp?id=448</p>
<p><br />
本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/webfed/archive/2009/01/29/3854677.aspx</p>
 <img src ="http://www.blogjava.net/ebecket/aggbug/288905.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ebecket/" target="_blank">becket_zheng</a> 2009-07-29 16:50 <a href="http://www.blogjava.net/ebecket/articles/288905.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>