<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[wind]]></title>
<link>http://feng.kiyeer.net/</link>
<description><![CDATA[创造机会的人是勇者；等待机会的人是愚者]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[yong8868@163.com(wind)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>wind</title>
	<url>http://feng.kiyeer.net/images/logos.gif</url>
	<link>http://feng.kiyeer.net/</link>
	<description>wind</description>
</image>

			<item>
			<link>http://feng.kiyeer.net/article.asp?id=424</link>
			<title><![CDATA[Yahoo YUI CSS学习与研究]]></title>
			<author>yong8868@163.com(feng)</author>
			<category><![CDATA[asp/.net/ajax]]></category>
			<pubDate>Tue,31 Aug 2010 17:16:17 +0800</pubDate>
			<guid>http://feng.kiyeer.net/default.asp?id=424</guid>
		<description><![CDATA[YUI Grid CSS设计的非常优雅，思路非常清晰，打算使用CSS+DIV做网站布局的兄弟非常值得一看。<br/><br/>引入CSS 文件，这里yahoo提供了共用的css host文件，如果很多网站都使用yahoo host的js ,css,那么这些css,js将仅加载一次，有利于提高浏览速度。 <br/><br/>Html代码<br/>&lt;!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.01//EN&#34; &#34;<a href="http://www.w3.org/TR/html4/strict.dtd" target="_blank" rel="external">http://www.w3.org/TR/html4/strict.dtd</a>&#34;&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;html&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;head&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;YUI Grids CSS&lt;/title&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- Source File --&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;<a href="http://yui.yahooapis.com/2.5.2/build/reset-fonts-grids/reset-fonts-grids.css" target="_blank" rel="external">http://yui.yahooapis.com/2.5.2/build/reset-fonts-grids/reset-fonts-grids.css</a>&#34;&gt;&nbsp;&nbsp; <br/>&lt;/head&gt;<br/><br/>&lt;!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.01//EN&#34; &#34;<a href="http://www.w3.org/TR/html4/strict.dtd" target="_blank" rel="external">http://www.w3.org/TR/html4/strict.dtd</a>&#34;&gt;<br/> &lt;html&gt;<br/> &lt;head&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;YUI Grids CSS&lt;/title&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Source File --&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;<a href="http://yui.yahooapis.com/2.5.2/build/reset-fonts-grids/reset-fonts-grids.css" target="_blank" rel="external">http://yui.yahooapis.com/2.5.2/build/reset-fonts-grids/reset-fonts-grids.css</a>&#34;&gt;<br/>&lt;/head&gt;<br/><br/>YUI Grid CSS建议把网站整体划分为3打部分，header, body, footer,并且这三部分放在一个大的div里,这三大部分使用id sel&#101;ctor来做定义。 <br/><br/>Html代码<br/>&lt;!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.01//EN&#34; &#34;<a href="http://www.w3.org/TR/html4/strict.dtd" target="_blank" rel="external">http://www.w3.org/TR/html4/strict.dtd</a>&#34;&gt; <br/>&lt;html&gt; <br/>&lt;head&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;YUI Grids CSS&lt;/title&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- Source File --&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;reset-fonts-grids.css&#34;&gt; <br/>&lt;/head&gt; <br/>&lt;body&gt; <br/>&lt;div id=&#34;doc&#34;&gt; <br/>&nbsp;&nbsp; &lt;div id=&#34;hd&#34;&gt;&lt;!-- header --&gt;&lt;/div&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp; &lt;div id=&#34;bd&#34;&gt;&lt;!-- body --&gt;&lt;/div&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp; &lt;div id=&#34;ft&#34;&gt;&lt;!-- footer --&gt;&lt;/div&gt;&nbsp;&nbsp; <br/>&lt;/div&gt; <br/>&lt;/body&gt; <br/>&lt;/html&gt; <br/><br/>&lt;!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.01//EN&#34; &#34;<a href="http://www.w3.org/TR/html4/strict.dtd" target="_blank" rel="external">http://www.w3.org/TR/html4/strict.dtd</a>&#34;&gt;<br/>&lt;html&gt;<br/>&lt;head&gt;<br/> &lt;title&gt;YUI Grids CSS&lt;/title&gt;<br/> &lt;!-- Source File --&gt;<br/> &lt;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;reset-fonts-grids.css&#34;&gt;<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&lt;div id=&#34;doc&#34;&gt;<br/>&nbsp;&nbsp; &lt;div id=&#34;hd&#34;&gt;&lt;!-- header --&gt;&lt;/div&gt;<br/>&nbsp;&nbsp; &lt;div id=&#34;bd&#34;&gt;&lt;!-- body --&gt;&lt;/div&gt;<br/>&nbsp;&nbsp; &lt;div id=&#34;ft&#34;&gt;&lt;!-- footer --&gt;&lt;/div&gt;<br/>&lt;/div&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/><br/>YUI Grid CSS为最外侧的div预先设置了4个宽度，分别是750px, 950px, 100%, 974px，可以通过改变最外侧div的id来改变它的宽度。<br/>同时用户还可以根据自己的需要自己定义最外侧div的宽度。<br/><br/>Html代码<br/>&lt;!-- #doc = 750px width, centered--&gt; <br/>&lt;div id=&#34;doc&#34;&gt;&lt;/div&gt; <br/> <br/>&lt;!-- #doc2 = 950px width, centered --&gt; <br/>&lt;div id=&#34;doc2&#34;&gt;&lt;/div&gt; <br/> <br/>&lt;!-- #doc3 = 100% width --&gt; <br/>&lt;div id=&#34;doc3&#34;&gt;&lt;/div&gt; <br/> <br/>&lt;!-- #doc4 = 974px width, centered --&gt; <br/>&lt;div id=&#34;doc4&#34;&gt;&lt;/div&gt; <br/><br/>&lt;!-- #doc = 750px width, centered--&gt;<br/>&lt;div id=&#34;doc&#34;&gt;&lt;/div&gt;<br/><br/>&lt;!-- #doc2 = 950px width, centered --&gt;<br/>&lt;div id=&#34;doc2&#34;&gt;&lt;/div&gt;<br/><br/>&lt;!-- #doc3 = 100% width --&gt;<br/>&lt;div id=&#34;doc3&#34;&gt;&lt;/div&gt;<br/><br/>&lt;!-- #doc4 = 974px width, centered --&gt;<br/>&lt;div id=&#34;doc4&#34;&gt;&lt;/div&gt;<br/><br/>绝大多数网站可以把body分成两个部分，main-block and second-block,YUI Grid CSS已经预先定义好了这两个块。<br/>用户可以通过改变css class的内容来调节main-block和second-block的左右位置，以及second-block的宽度，main-block将会占用second-block宽度剩余的宽度。<br/><br/>Html代码<br/>&lt;div id=&#34;doc&#34; class=&#34;yui-t4&#34;&gt; &lt;!-- change class to change preset --&gt; <br/>&nbsp;&nbsp; &lt;div id=&#34;hd&#34;&gt;&lt;/div&gt; <br/>&nbsp;&nbsp; &lt;div id=&#34;bd&#34;&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id=&#34;yui-main&#34;&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&#34;yui-b&#34;&gt;&lt;/div&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-b&#34;&gt;&lt;/div&gt; <br/>&nbsp;&nbsp; &lt;/div&gt; <br/>&nbsp;&nbsp; &lt;div id=&#34;ft&#34;&gt;&lt;/div&gt; <br/>&lt;/div&gt; <br/><br/>&lt;div id=&#34;doc&#34; class=&#34;yui-t4&#34;&gt; &lt;!-- change class to change preset --&gt;<br/>&nbsp;&nbsp; &lt;div id=&#34;hd&#34;&gt;&lt;/div&gt;<br/>&nbsp;&nbsp; &lt;div id=&#34;bd&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id=&#34;yui-main&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&#34;yui-b&#34;&gt;&lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-b&#34;&gt;&lt;/div&gt;<br/>&nbsp;&nbsp; &lt;/div&gt;<br/>&nbsp;&nbsp; &lt;div id=&#34;ft&#34;&gt;&lt;/div&gt;<br/>&lt;/div&gt;<br/><br/>yui-b中的b 表示block, 在最外层的class=&#34;yui-t4&#34;表示second-block占用180px，排列在main-block的右侧，除了yui-t4,之外，还有yui-t1 到yui-t6，每一个都表示不同的含义。<br/>在main-block中还支持内嵌的grid,css class用yui-g来表示，在内嵌的grid中，包含不同的uint,css使用yui-u来表示。<br/><br/>Html代码<br/>&lt;div id=&#34;yui-main&#34;&gt; <br/>&nbsp;&nbsp; &lt;div class=&#34;yui-b&#34;&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-g&#34;&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&#34;yui-u first&#34;&gt;&lt;/div&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&#34;yui-u&#34;&gt;&lt;/div&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; <br/>&nbsp;&nbsp; &lt;/div&gt; <br/>&lt;/div&gt; <br/><br/>&lt;div id=&#34;yui-main&#34;&gt;<br/>&nbsp;&nbsp; &lt;div class=&#34;yui-b&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-g&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&#34;yui-u first&#34;&gt;&lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&#34;yui-u&#34;&gt;&lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &lt;/div&gt;<br/>&lt;/div&gt;<br/><br/>内嵌的grid还可以内嵌grid,这样就可以设计出非常复杂的page layout来，同时还可以指定那个unit在前，哪个unit在后，使用css class=&#34;first&#34;<br/><br/>Html代码<br/>&lt;div id=&#34;yui-main&#34;&gt; <br/>&nbsp;&nbsp; &lt;div class=&#34;yui-b&#34;&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-g&#34;&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&#34;yui-g first&#34;&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-u first&#34;&gt;&lt;/div&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-u&#34;&gt;&lt;/div&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&#34;yui-g&#34;&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-u first&#34;&gt;&lt;/div&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-u&#34;&gt;&lt;/div&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; <br/>&nbsp;&nbsp; &lt;/div&gt; <br/>&lt;/div&gt; <br/><br/>&lt;div id=&#34;yui-main&#34;&gt;<br/>&nbsp;&nbsp; &lt;div class=&#34;yui-b&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-g&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&#34;yui-g first&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-u first&#34;&gt;&lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-u&#34;&gt;&lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&#34;yui-g&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-u first&#34;&gt;&lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&#34;yui-u&#34;&gt;&lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &lt;/div&gt;<br/>&lt;/div&gt;<br/>对于内嵌的grid,如果使用css class=&#34;yui-g&#34;，里面的两个unit是均分width的。<br/>如果有特殊需要，还可以指定，css class为yui-gb到yui-gf，这些css分别定义了两个unit如何分配grid的width。<br/><br/>这篇文章并非原创，感觉非常精彩，可以拿来做固定宽度或自适应宽度布局，而且自然是跨浏览器的，所以粘来便于以后学习。]]></description>
		</item>
		
			<item>
			<link>http://feng.kiyeer.net/article.asp?id=423</link>
			<title><![CDATA[JavaScript窗口功能指南之检查一个窗口是否存在]]></title>
			<author>yong8868@163.com(feng)</author>
			<category><![CDATA[web技术]]></category>
			<pubDate>Mon,30 Aug 2010 13:37:00 +0800</pubDate>
			<guid>http://feng.kiyeer.net/default.asp?id=423</guid>
		<description><![CDATA[当你创建一个新窗口时，给open（）方法的返回值分配一个变量非常重要。比如，下面的语句创建一个新窗口，然后立即关闭它： <br/><br/>　　win = window.open(&#34;<a href="http://www.docjs.com/" target="_blank" rel="external">http://www.docjs.com/</a>&#34;, &#34;js&#34;); <br/><br/>　　win.close(); <br/><br/>Window对象 <br/>　　每一个浏览器窗口都与一个清楚地window对象对应，所以，当你想引用当前窗口时，你应该使用window对象。下面的语句设置当前窗口的URL： <br/><br/>　　window.location.href = &#34;<a href="http://www.docjs.com/" target="_blank" rel="external">http://www.docjs.com/</a>&#34;; <br/><br/>　　当你在脚本程序中放置这样一个语句时，你不需要指定window对象，因为当前窗口的存在是默认的： <br/><br/>　　location.href = &#34;<a href="http://www.docjs.com/" target="_blank" rel="external">http://www.docjs.com/</a>&#34;; <br/><br/>　　注意，self等价于window，所以，self.close（）实际上就等于window.close（）。 <br/><br/>　　当你想操纵一个窗口时，你必须确认它是存在的。在为window.open（）方法定义一个变量时，要将它定义为全局变量并设置为null。记住，open（）方法返回新窗口的window对象。这里是一个例子： <br/><br/>　　var win = null; <br/><br/>　　function launchWindow() { <br/><br/>　　 win = window.open(); <br/><br/>　　 // statements that refer to the new window go here <br/><br/>　　} <br/><br/>　　如果你想对新窗口执行一个操作，你首先应该检查变量win是否为null： <br/><br/>　　// if win exists, move the window <br/><br/>　　if (win) win.moveTo(0, 0); <br/><br/>　　注意，null等于false，同时任何其他合法的对象等价于true。如果win等于true，你就知道了它不是null，这意味着新窗口成功地创建了。<br/><br/>open &#34;属性&#34; <br/>现在你知道了浏览器实际创建了新窗口。但是它仍然存在吗？不是必须的。你需要确认可用的窗口的确拥有一个真正的window对象。既然每个window对象对应于一个open（）方法，你就可以通过对象探测检查到这个方法： <br/>　　// 如果win.open存在,就移动窗口 <br/><br/>　　if (win.open) win.moveTo(0, 0); <br/><br/>　　变量win对照窗口的window对象，所以win.open对应window的window.open方法。注意，条件表达式是一个函数引用，不是一个函数调用。除非你确认win存在，你不应该试图估计win.open。下面的语句描述了正确的执行方法： <br/><br/>　　// if win and win.open exist, move the window <br/><br/>　　if (win &amp;&amp; win.open) win.moveTo(0, 0); <br/><br/>　　由于&amp;&amp;是一个短操作符号，如果第一个参数（win）对应于true，那么结果就取决于第二个数值。如果第二个参数是false，那么整个表达式结果就是false。这是一个很重要的行为，因为如果win不存在，那么表达式win.open就会产生一个错误。 <br/><br/>closed 属性 <br/>　　由于JavaScript的第一个版本，浏览器窗口成为一个非常困难的问题。比如，一个window对象的一些方法，例如close()，即使当窗口已经关闭时也能被执行，同时另外一些却不能（比如moveTo()）。但是情况会更糟。Internet Explorer和Navigator经常有不同的行为。而且，预测一定操作的结果经常是非常困难的，即使你以前已经做过类似的尝试。我们将告诉你如何克服这些困难，方法就是介绍一个在交叉浏览器中能应用的语句，它将检查一个给定的窗口是否被打开。 <br/><br/>　　window.closed属性是一个Boolean型数值，它定义了是否窗口已经被关闭。当窗口被关闭时，window对象依然存在，并且它的closed属性已经被设置为true。 <br/><br/>　　使用closed来判断打开的窗口以及仍能够被引用（从window.open方法返回的数值）的窗口是否仍然打开着。当窗口关闭时，你不应该试图再操纵它。因为window.closed仅仅被Internet Explorer 4、Navigator 3 和高版本所支持，所以你应该注意前面的版本问题。我们将使用下面的代码： <br/><br/>　　// if win and win.open exist, and win.closed isn´t true, move the window <br/><br/>　　if (win &amp;&amp; win.open &amp;&amp; !win.closed) win.moveTo(0, 0); <br/><br/>　　Internet Explorer 3 和 Navigator 2 不支持 closed 方法，所以它在Boolean型表达式中等价于false (就像其他不存在地属性一样，比如 window.tomershiran）。]]></description>
		</item>
		
			<item>
			<link>http://feng.kiyeer.net/article.asp?id=422</link>
			<title><![CDATA[javascript读取cookie,javascrip写入cookie,asp.net读取cook]]></title>
			<author>yong8868@163.com(feng)</author>
			<category><![CDATA[web技术]]></category>
			<pubDate>Sun,29 Aug 2010 01:26:50 +0800</pubDate>
			<guid>http://feng.kiyeer.net/default.asp?id=422</guid>
		<description><![CDATA[javascript读取cookie,javascrip写入cookie,asp.net读取cookie,asp.net写入cookie<br/><br/>&lt;%@ Page Language=&#34;C#&#34; EnableViewState=&#34;false&#34;%&gt;<br/>&lt;script language=&#34;C#&#34; runat=&#34;server&#34;&gt;<br/>protected void Page_Load(object sender, EventArgs e)<br/>{<br/><br/>}<br/><br/>protected void Button1_Click(object sender, EventArgs e)<br/>{<br/>if (Request.Cookies[&#34;key&#34;] != null)<br/>Response.Write(HttpUtility.UrlDecode(Request.Cookies[&#34;key&#34;].Value));<br/>else<br/>Response.Write(&#34;null&#34;);<br/>}<br/><br/>protected void Button2_Click(object sender, EventArgs e)<br/>{<br/>Response.Cookies.Add(new HttpCookie(&#34;key&#34;, HttpUtility.UrlEncode(TextBox1.Text)));<br/>}<br/>&lt;/script&gt;<br/><br/>&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank" rel="external">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&#34;&gt;<br/><br/>&lt;html xmlns=&#34;<a href="http://www.w3.org/1999/xhtml" target="_blank" rel="external">http://www.w3.org/1999/xhtml</a>&#34; &gt;<br/>&lt;head runat=&#34;server&#34;&gt;<br/>&lt;title&gt;javascript读取cookie,javascrip写入cookie,asp.net读取cookie,asp.net写入cookie&lt;/title&gt;<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&lt;form id=&#34;form1&#34; runat=&#34;server&#34;&gt;<br/>&lt;div&gt;<br/>&lt;script language=&#34;javascript&#34;&gt;<br/>function getCookie(name){var arr = document.cookie.match(new RegExp(&#34;(^| )&#34;+name+&#34;=([^;]*)(;|$)&#34;));if(arr != null) return decodeURI(arr[2]); return null;}<br/>function setCookie(cookiename,cookievalue,cookieexpdate)<br/>{<br/>document.cookie = cookiename + &#34;=&#34; + encodeURI(cookievalue)<br/>+ &#34;; domain=.www.svnhost.cn&#34;<br/>+ &#34;; path=&#34; + &#34;/&#34;<br/>+ &#34;; expires=&#34; + cookieexpdate.toGMTString();<br/>}<br/>function Read()<br/>{<br/>alert(getCookie(&#34;key&#34;));<br/>}<br/>function Write()<br/>{<br/>var d = new Date();<br/>d.setTime(d.getTime()+1000*60*60*24*30);<br/>setCookie(&#34;key&#34;, document.getElementById(&#34;TextBox1&#34;).value, d);<br/>}<br/>&lt;/script&gt;<br/>&lt;asp:TextBox ID=&#34;TextBox1&#34; runat=&#34;server&#34;&gt;&lt;/asp:TextBox&gt;<br/>&lt;input type=&#34;button&#34; value=&#34;JS读取&#34; _disibledevent=&#34;color: #000000&#34;&gt; ]]></description>
		</item>
		
			<item>
			<link>http://feng.kiyeer.net/article.asp?id=421</link>
			<title><![CDATA[Cr&#101;ateDocumentFragment的用处]]></title>
			<author>yong8868@163.com(feng)</author>
			<category><![CDATA[web技术]]></category>
			<pubDate>Sat,28 Aug 2010 16:12:02 +0800</pubDate>
			<guid>http://feng.kiyeer.net/default.asp?id=421</guid>
		<description><![CDATA[一旦把节点添加到document.body(或其后的节点)中，页面就会立即反映出这个变化。对于少量的更新，这是很好的。然而，当要向 document.body添加大量数据时，如果逐个添加这些节点，这个过程有可能会十分缓慢。为解决这个问题，可以创建一个文档碎片，把所有的新节点附加其上，然后把文档碎片的内容一次性添加到document中。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; 假设你想创建十个新段落。你可能这样写：<br/>var arrText=[&#34;1&#34;,&#34;2&#34;,&#34;3&#34;,&#34;4&#34;,&#34;5&#34;,&#34;6&#34;,&#34;7&#34;,&#34;8&#34;,&#34;9&#34;,&#34;10&#34;];<br/>for(var i=0;i&lt;arrText.length;i++)<br/>...{<br/>&nbsp;&nbsp;&nbsp;&nbsp;var op=document.cr&#101;ateElement(&#34;P&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;var oText=document.cr&#101;ateTextNode(arrText[i]);<br/>&nbsp;&nbsp;&nbsp;&nbsp;op.appendChild(oText);<br/>&nbsp;&nbsp;&nbsp;&nbsp;document.body.appendChild(op);<br/>}<br/><br/> 这段代码运行良好，但问题是它调用了十次document.body.appendChild(),每次要产生一次页面刷新。这时，文档碎片会更高效：<br/>var arrText=[&#34;1&#34;,&#34;2&#34;,&#34;3&#34;,&#34;4&#34;,&#34;5&#34;,&#34;6&#34;,&#34;7&#34;,&#34;8&#34;,&#34;9&#34;,&#34;10&#34;];<br/>var oFrag=document.cr&#101;ateDocumentFragment();<br/><br/>for(var i=0;i&lt;arrText.length;i++)<br/>...{<br/>&nbsp;&nbsp;&nbsp;&nbsp;var op=document.cr&#101;ateElement(&#34;P&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;var oText=document.cr&#101;ateTextNode(arrText[i]);<br/>&nbsp;&nbsp;&nbsp;&nbsp;op.appendChild(oText);<br/>&nbsp;&nbsp;&nbsp;&nbsp;oFrag.appendChild(op);<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>}<br/>document.body.appendChild(oFrag);<br/>这段代码中,document.body.appendChild()仅调用了一次，这意味首只需要进行一次屏幕的刷新。 ]]></description>
		</item>
		
			<item>
			<link>http://feng.kiyeer.net/article.asp?id=420</link>
			<title><![CDATA[JavaScript的document和window对象详解]]></title>
			<author>yong8868@163.com(feng)</author>
			<category><![CDATA[web技术]]></category>
			<pubDate>Fri,27 Aug 2010 13:56:52 +0800</pubDate>
			<guid>http://feng.kiyeer.net/default.asp?id=420</guid>
		<description><![CDATA[[document对象]<br/><br/>　　该对象是window和frames对象的一个属性,是显示于窗口或框架内的一个文档。<br/><br/>　　属性<br/><br/>　　alinkColor 活动链接的颜色(ALINK)<br/>　　anchor 一个HTMI锚点,使用&lt;A NAME=&gt;标记创建(该属性本身也是一个对象)<br/>　　anchors array 列出文档锚点对象的数组(&lt;A NAME=&gt;)(该属性本身也是一个对象)<br/>　　bgColor 文档的背景颜色(BGCOLOR)<br/>　　cookie 存储于cookie.txt文件内的一段信息,它是该文档对象的一个属性<br/>　　fgColor 文档的文本颜色(&lt;BODY&gt;标记里的TEXT特性)<br/>　　form 文档中的一个窗体(&lt;FORM&gt;)(该属性本身也是一个对象)<br/>　　forms anay 按照其出现在文档中的顺序列出窗体对象的一个数组(该属性本身也是一个对象)<br/>　　lastModified 文档最后的修改日期<br/>　　linkColor 文档的链接的颜色,即&lt;BODY&gt;标记中的LINK特性(链接到用户没有观察到的文档)<br/>　　link 文档中的一个&lt;A HREF=&gt;标记(该属性本身也是一个对象)<br/>　　links array 文档中link对象的一个数组,按照它们出现在文档中的顺序排列(该属性本身也是一个对象)<br/>　　location 当前显示文档的URL。用户不能改变document.location(因为这是当前显示文档的位置)。但是,可以改变window.location (用其它文档取代当前文档)window.location本身也是一个对象,而document.location不是对象<br/>　　referrer 包含链接的文档的URL,用户单击该链接可到达当前文档<br/>　　title 文档的标题((TITLE&gt;)<br/>　　vlinkColor 指向用户已观察过的文档的链接文本颜色,即&lt;BODY&gt;标记的VLINK特性<br/><br/>　　方法<br/><br/>　　clear 清除指定文档的内容<br/>　　close 关闭文档流<br/>　　open 打开文档流<br/>　　write 把文本写入文档<br/>　　writeln 把文本写入文档,并以换行符结尾<br/><br/>[window对象]<br/><br/>　　它是一个顶层对象,而不是另一个对象的属性即浏览器的窗口。<br/><br/>　　属性<br/><br/>　　defaultStatus 缺省的状态条消息<br/>　　document 当前显示的文档(该属性本身也是一个对象)<br/>　　frame 窗口里的一个框架((FRAME&gt;)(该属性本身也是一个对象)<br/>　　frames array 列举窗口的框架对象的数组,按照这些对象在文档中出现的顺序列出(该属性本身也是一个对象)<br/>　　history 窗口的历史列表(该属性本身也是一个对象)<br/>　　length 窗口内的框架数<br/>　　location 窗口所显示文档的完整(绝对)URL(该属性本身也是一个对象)不要把它与如document.location混淆,后者是当前显示文档的URL。用户可以改变window.location(用另一个文档取代当前文档),但却不能改变document.location(因为这是当前显示文档的位置)<br/>　　name 窗口打开时,赋予该窗口的名字<br/>　　opener 代表使用window.open打开当前窗口的脚本所在的窗口(这是Netscape Navigator 3.0beta 3所引入的一个新属性)<br/>　　parent 包含当前框架的窗口的同义词。frame和window对象的一个属性<br/>　　self 当前窗口或框架的同义词<br/>　　status 状态条中的消息<br/>　　top 包含当前框架的最顶层浏览器窗口的同义词<br/>　　window 当前窗口或框架的同义词,与self相同<br/><br/>　　方法<br/><br/>　　alert() 打开一个Alert消息框<br/>　　clearTimeout() 用来终止setTimeout方法的工作<br/>　　close() 关闭窗口<br/>　　confirm() 打开一个Confirm消息框,用户可以选择OK或Cancel,如果用户单击OK,该方法返回true,单击Cancel返回false<br/>　　blur() 把焦点从指定窗口移开(这是Netscape Navigator 3.0 beta 3引入的新方法)<br/>　　focus() 把指定的窗口带到前台(另一个新方法)<br/>　　open() 打开一个新窗口<br/>　　PRompt() 打开一个Prompt对话框,用户可向该框键入文本,并把键入的文本返回到脚本<br/>　　setTimeout() 等待一段指定的毫秒数时间,然后运行指令事件处理程序<br/><br/>　　事件处理程序<br/><br/>　　Onload() 页面载入时触发<br/>　　Onunload() 页面关闭时触发]]></description>
		</item>
		
			<item>
			<link>http://feng.kiyeer.net/article.asp?id=419</link>
			<title><![CDATA[yui]]></title>
			<author>yong8868@163.com(feng)</author>
			<category><![CDATA[web技术]]></category>
			<pubDate>Mon,19 Apr 2010 09:48:31 +0800</pubDate>
			<guid>http://feng.kiyeer.net/default.asp?id=419</guid>
		<description><![CDATA[Yahoo! User Interface Library(简称yui) 是一个使用Javascrīpt编写的工具和控件库。它利用DOM脚本,DHTML和AJAX来构造具有丰富交互功能的Web程序。yui也包含几个核心的CSS文件。yui中的所有组件已经以开源的形式发布，它们遵循BSD协议并且可以免费使用。可以从Sourceforge站点下载完整的项目文件，同时包含相关文档和示例。 <br/><br/>yui项目开发人员的BLOG：YUI Blog，交流社区：ydn-javascrīpt on Yahoo! Groups。 <br/><br/>准备工作： <br/><br/>1、 下载yui <br/>最新版YUI下载地址：<a href="http://sourceforge.net/project/downloading.php?group_id=165715" target="_blank" rel="external">http://sourceforge.net/project/downloading.php?group_id=165715</a>&amp;filename=yui_2.3.1.zip<br/>yui项目文件已经发布在Sourceforge站点，文件包含相关文档，示例和代码。 <br/><br/>注：Yahoo没有为yui的运行提供免费的运行环境，你需要运行在你在即Web服务器上。 <br/><br/>2、 在你的网页中加入你需要的类库文件 <br/><br/>为了使用yui中的组件你必须在你的页面文件中用&lt;scrīpt&gt;指定相关组件的类库文件地址。如果该组件依赖于其他组件，你必须使用&lt;scrīpt&gt;指定所依赖的组件的类库文件地址。 <br/><br/>3、 如果有必要，在页面中加入CSS文件 <br/><br/>某些yui的控件包含一个相应的CSS文件，用来设定控件的样式。此时，你必须在页面中使用&lt;style&gt;指定相应的CSS文件的地址。你可以通过修改相应的CSS文件达到你想要的效果。 <br/><br/>4、 浏览相关文档和示例 <br/><br/>每一个组件都包含详细的API文档，并且提供了常用的例子。学习完后，回顾一下所有的API，做到心中有数。因为对于API理解的好坏将影响你对yui的使用效果。 <br/><br/>组件介绍 Yui组件分成2类：工具包和控件库 <br/><br/>Yui 工具包 <br/><br/>Yui 工具包利用DOM脚本来简化浏览器内的开发（in-browser devolvement），使用DHTML和AJAX的特性开发所有的Web程序。 <br/><br/>动画（Animation）：在你的页面中通过指定位置，大小，透明度或者页面元素的其他特性来创建一个&#34;电影效果（cinematic effects）&#34;。这些效果将在你的页面发生变化的时候给用户更好的体验。 <br/><br/>连接管理（Connection Manager）：这个工具包帮助你管理XMLHttpRequest（一般被称为AJAX）事务，它提供对表单提交（form posts），错误捕获（error handling）和callbacks的全面支持。该工具包也支持文件的上传管理。 <br/><br/>DOM：DOM工具包提供更简单的DOM脚本的功能调用方式，包含元素的位置和CSS样式的管理。 <br/><br/>拖放（Drag and Dro&#112;）：创建可拖放的对象。为了提供丰富的交互功能（比如拖动一个对象到目标位置）你可能需要编写很多代码。这个工具包可以在所有支持的浏览器中捕获所有的操作事务并保证其稳定地运行。 <br/><br/>事件（Event）：这个神奇的管理类库给你提供一种简单安全的方法访问浏览器的事件（比如点击和键盘操作）。这个事件封包中还包含了自定义事件对象，它为你的程序交互提供一种发布和订阅事件的机制。 <br/><br/>yui控件： <br/><br/>yui控件库为你页面提供一组高交互性性的可视化元素。这些元素完全在客户端创建维护，不需要请求服务器进行页面刷新。 <br/><br/>这些控件包括： <br/><br/>自动完成（AutoComplete）控件：自动完成控件为文本输入提供一种渐进式的用户体验（streamline user interactions）。控件会提供相似项列表和基于多样化的数据格式的提前键入功能（type-ahead functionality based on a variety of data-source formats），并且可以通过XMLHttpRequest访问服务端的数据。 <br/><br/>日历（Calendar）控件：一个用来日期选择的动态图形控件。 <br/><br/>容器（Container）控件：一组模仿windows样式的控件，他们包括Tooltip, Panel, Dialog 和 SimpleDialog。其中Module 和 Overlay控件提供一个可扩展的平台，你可以控制自定义的模仿windows样式的控件。 <br/><br/>日志（Logger）控件：提供一个快速和简单的记录日志的方式，它直接将日志信息输出到屏幕控制台（on-screen console）、Firefox的扩展组件FireBug，或者Safari的Javascrīpt控制台。yui的Debug组件将完整的记录输出信息和调试信息。 <br/><br/>菜单（Menu）控件：利用此控件只需要几行简单的代码就可以设计一个动态样式的菜单。可以完全使用javascrīpt构造一个菜单，can be layered on top of semantic unordered lists。 <br/><br/>滑块（Slider）控件：提供一个可滑动的组件，它允许使用者在一定的范围内（x轴，y轴）改变滑块的位置。 <br/><br/>树形（TreeView）控件：提供一个节点可缩放的树形控件。节点可以是链接，自定义属性，并且可以动态加载。节点元素的展现可以通过CSS修改，比如文件夹视图，TO－DO任务列表或者其他可视化处理 <br/><br/>yui的CSS资源 <br/><br/>为了让CSS能符合不同等级的浏览器（A-Grade browsers）的标准，我们想了很多。我们把这些作为yui类库的一部分共享出来，希望能在这里得到促进，获得一个简洁的，可维护并在浏览器中表现优秀的设计。 <br/><br/>页面网格样式（CSS Page Grids）：7个基本的用css组织子组件的页面框架，支持130种不通的页面布局。 <br/><br/>标准的CSS字体（Standard CSS Fonts）：标准的跨浏览器字体样式和大小展现。 <br/><br/>标准的CSS排列（Standard CSS Reset）：使用这些CSS声明来排除页面的空白部分并且公共元素的样式兼容各种浏览器的展现。]]></description>
		</item>
		
			<item>
			<link>http://feng.kiyeer.net/article.asp?id=418</link>
			<title><![CDATA[在FireFox使用 getYear()]]></title>
			<author>yong8868@163.com(feng)</author>
			<category><![CDATA[web技术]]></category>
			<pubDate>Wed,25 Nov 2009 09:23:20 +0800</pubDate>
			<guid>http://feng.kiyeer.net/default.asp?id=418</guid>
		<description><![CDATA[javascript 中 getYear() 的使用<br/>例:日期如果為 2006/1/12,<br/>在IE使用 getYear(), 會取得 2006;<br/>在FireFox使用 getYear(), 會取得106.<br/><br/>兩全的方法是: getFullYear(). ]]></description>
		</item>
		
			<item>
			<link>http://feng.kiyeer.net/article.asp?id=417</link>
			<title><![CDATA[ASP中const ]]></title>
			<author>yong8868@163.com(feng)</author>
			<category><![CDATA[asp/.net/ajax]]></category>
			<pubDate>Tue,24 Nov 2009 09:22:58 +0800</pubDate>
			<guid>http://feng.kiyeer.net/default.asp?id=417</guid>
		<description><![CDATA[const是声明该变量为常量.常量的特点是要在定义的时候赋值 不能再改变其的值.<br/>const的作用是防止编程中变量的值改变.比如说const pr=3.14 因为圆周率在一定精确度下是认为是不变的. ]]></description>
		</item>
		
			<item>
			<link>http://feng.kiyeer.net/article.asp?id=416</link>
			<title><![CDATA[ASP 中 Split 函数的实例 ]]></title>
			<author>yong8868@163.com(feng)</author>
			<category><![CDATA[asp/.net/ajax]]></category>
			<pubDate>Wed,11 Nov 2009 12:27:43 +0800</pubDate>
			<guid>http://feng.kiyeer.net/default.asp?id=416</guid>
		<description><![CDATA[大家有碰到过要想取一字符串里的某些值而无从下手？有没有觉得看书或教材对split的写法糊里糊涂……如果有此疑问的话，请看下面我对例子的解释，相信您会对这个有一定的了解。<br/><br/>　　我先介绍一下Split函数的用法:<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://feng.kiyeer.net/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">返回值数组 = Split(&#34;字符串&#34;,&#34;分割符&#34;)</div></div><br/><br/>　假设变量strURL保存着URL值，如strURL = &#34;<a href="ftp://username:password@server" target="_blank" rel="external">ftp://username:password@server</a>&#34;，这是我们在ＩＥ中登录到FTP上时的ＵＲＬ形式，如果我们想把其中的 username和password取出来的话，该怎么办呢？当然解决的方法有许多，在这里我们只介绍用Split来解决的方法。首先，我们找出分割符。我们发现在这个字符串中，username和password之间有个冒号把它们隔开了，所以我们就把这个冒号作为Split函数的&#34;分割符&#34;来分割整个字符串，最后达到取username和password的目的。代码如下：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://feng.kiyeer.net/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>strURL = &#34;<a href="ftp://username:password@server" target="_blank" rel="external">ftp://username:password@server</a>&#34;<br/>aryReturn = Split(strURL,&#34;:&#34;)<br/></div></div><br/><br/>这样我们就把字符串用冒号分割开了，分割后的结果保存在aryReturn中（aryReturn是一个数组）。<br/><br/>　　下面我们就来看看这个最终的结果吧，因为Split函数最终返回的是一个数组，所以我们主要就是显示数组中的元素了，就要涉及到一些跟数组有关的函数:IsArray()判断是否数组的函数,LBound()取数组的下标,UBound()取数组的上标。 <br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://feng.kiyeer.net/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>Response.Write(&#34;返回值是否为数组:&#34; &amp; IsArray(aryReturn) &amp; &#34;&lt;br&gt;&#34;)<br/>For i = LBound(aryReturn) To UBound(aryReturn)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(&#34;返回值数组中的元素[&#34; &amp; i &amp; &#34;]：&#34; &amp; Right(aryReturn(i),Len(aryReturn(i))-2) &amp; &#34;&lt;br&gt;&#34;)<br/>Next <br/></div></div><br/><br/>　通过上面的代码，我们看到字符串被分割成三个部分，即：&#34;ftp&#34;、&#34;//username&#34;、&#34;password@server&#34;。我们要取username和password需要进一步的处理，我就不多说了，直接给出代码。<br/>　　取username的代码：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://feng.kiyeer.net/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>strUsername = Right(aryReturn(1),Len(aryReturn(1))-2) <br/></div></div><br/><br/>　取password的代码：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://feng.kiyeer.net/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>&#39;取password我们又用到Split函数了，不过这回的分割符是&#34;@&#34;<br/>aryTemp = Split(aryReturn(2),&#34;@&#34;)<br/>strPassword = aryTemp(0)<br/>&#39;我们可以顺便取出server<br/>strServer = aryTemp(1) <br/></div></div><br/><br/>分割符可以是一个字符，也可以是一个字符串。如：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://feng.kiyeer.net/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>aryReturn = Split(&#34;<a href="ftp://username:password@server" target="_blank" rel="external">ftp://username:password@server</a>,&#34;//&#34;) <br/></div></div><br/><br/>注意：<br/>　　1.一般来说，ＡＳＰ中可以不声明变量，使用Split函数时，如果要声明返回值的变量的话，只能用Dim，而不能用Redim。虽然说其返回是一个数组，应该是用Redim也可以，但在实际使用过程中是不行。不知是怎么回事？<br/>　　2. 如果用Split函数来分割一个字符串中并不存在的分割符时，将返回整个字符串，其结果是只有一个元素的数组。<br/><br/>　　后话，对于要取一字符串中的某些字符或部分，只要抓住规律，再加上用split就可以很好做成各种效果。写此文，希望对大家的学习有所帮助，同时也希望各路高手能够指点一二！]]></description>
		</item>
		
			<item>
			<link>http://feng.kiyeer.net/article.asp?id=415</link>
			<title><![CDATA[ASP的FSO组件操作详解说明]]></title>
			<author>yong8868@163.com(feng)</author>
			<category><![CDATA[asp/.net/ajax]]></category>
			<pubDate>Sat,07 Nov 2009 14:38:35 +0800</pubDate>
			<guid>http://feng.kiyeer.net/default.asp?id=415</guid>
		<description><![CDATA[最近学校里讲了ASP的FSO组件，没听太懂。。。上课打瞌睡了~，以前自己也看过一些关于ASP的书，所以就算打瞌睡最后的作业也顺利完成交上去了。学校教的进度实在是不敢恭维，还是自己多找点关于FSO的东西来充实下，顺便当作笔记，以备后查<br/><br/>FSO是FileSystemObject 或 Scripting.FileSystemObject 的缩写，为 IIS 内置组件，用于操作磁盘、文件夹或文本文件。FSO 的对象、方法和属性非常的多，这里用示例的方式列出常用的，注意：《VBScript 语言参考》或《JScript 语言参考》中的：《FileSystemObject 用户指南》和《Scripting 运行时库参考》便是微软给出的 FileSystemObject 完整参考。<br/><br/>FSO 不能操作二进制文件，要操作二进制文件，使用：ADODB.Stream。<br/><br/>创建文件<br/>dim fso, f<br/>set fso = server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>set f = fso.Cr&#101;ateTextFile(&#34;C:\test.txt&#34;, true) &#39;第二个参数表示目标文件存在时是否覆盖<br/>f.Write(&#34;写入内容&#34;)<br/>f.WriteLine(&#34;写入内容并换行&#34;)<br/>f.WriteBlankLines(3) &#39;写入三个空白行（相当于在文本编辑器中按三次回车）<br/>f.Close()<br/>set f = nothing<br/>set fso = nothing<br/><br/>打开并读文件<br/>dim fso, f<br/>set fso = server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>set f = fso.OpenTextFile(&#34;C:\test.txt&#34;, 1, false) &#39;第二个参数 1 表示只读打开，第三个参数表示目标文件不存在时是否创建<br/>f.Skip(3) &#39;将当前位置向后移三个字符<br/>f.SkipLine() &#39;将当前位置移动到下一行的第一个字符，注意：无参数<br/>response.Write f.Read(3) &#39;从当前位置向后读取三个字符，并将当前位置向后移三个字符<br/>response.Write f.ReadLine() &#39;从当前位置向后读取直到遇到换行符（不读取换行符），并将当前位置移动到下一行的第一个字符，注意：无参数<br/>response.Write f.ReadAll() &#39;从当前位置向后读取，直到文件结束，并将当前位置移动到文件的最后<br/>if f.atEndOfLine then<br/>&nbsp;&nbsp; response.Write(&#34;一行的结尾！&#34;)<br/>end if<br/>if f.atEndOfStream then<br/>&nbsp;&nbsp;&nbsp;&nbsp;response.Write(&#34;文件的结尾！&#34;)<br/>end if<br/>f.Close()<br/>set f = nothing<br/>set fso = nothing<br/><br/>打开并写文件<br/>dim fso, f<br/>set fso = server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>set f = fso.OpenTextFile(&#34;C:\test.txt&#34;, 2, false) &#39;第二个参数 2 表示重写，如果是 8 表示追加<br/>f.Write(&#34;写入内容&#34;)<br/>f.WriteLine(&#34;写入内容并换行&#34;)<br/>f.WriteBlankLines(3) &#39;写入三个空白行（相当于在文本编辑器中按三次回车）<br/>f.Close()<br/>set f = nothing<br/>set fso = nothing<br/><br/>判断文件是否存在<br/>dim fso<br/>set fso = server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>if fso.FileExists(&#34;C:\test.txt&#34;) then<br/>&nbsp;&nbsp;&nbsp;&nbsp;response.Write(&#34;目标文件存在&#34;)<br/>else<br/>&nbsp;&nbsp;&nbsp;&nbsp;response.Write(&#34;目标文件不存在&#34;)<br/>end if<br/>set fso = nothing<br/><br/>移动文件<br/>dim fso<br/>set fso = server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>call fso.MoveFile(&#34;C:\test.txt&#34;, &#34;D:\test111.txt&#34;) &#39;两个参数的文件名部分可以不同<br/>set fso = nothing<br/><br/>复制文件<br/>dim fso<br/>set fso = server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>call fso.CopyFile(&#34;C:\test.txt&#34;, &#34;D:\test111.txt&#34;) &#39;两个参数的文件名部分可以不同<br/>set fso = nothing<br/><br/>删除文件<br/>dim fso<br/>set fso = server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>fso.Del&#101;teFile(&#34;C:\test.txt&#34;)<br/>set fso = nothing<br/><br/>创建文件夹<br/>dim fso<br/>set fso = server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>fso.Cr&#101;ateFolder(&#34;C:\test&#34;) &#39;目标文件夹的父文件夹必须存在<br/>set fso = nothing<br/><br/>判断文件夹是否存在<br/>dim fso<br/>set fso = server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>if fso.FolderExists(&#34;C:\Windows&#34;) then<br/>&nbsp;&nbsp;&nbsp;&nbsp;response.Write(&#34;目标文件夹存在&#34;)<br/>else<br/>&nbsp;&nbsp;&nbsp;&nbsp;response.Write(&#34;目标文件夹不存在&#34;)<br/>end if<br/>set fso = nothing<br/><br/>删除文件夹<br/>dim fso<br/>set fso = server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>fso.Del&#101;teFolder(&#34;C:\test&#34;) &#39;文件夹不必为空<br/>set fso = nothing]]></description>
		</item>
		
</channel>
</rss>
