<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>倾程记</title>
<link>http://blogger.org.cn/blog/blog.asp?name=flyby</link>
<description>flyby的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[ADOMD使用的例子]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=21515</link>
<author>flyby</author>
<pubDate>2007/1/7 0:10:46</pubDate>
<description><![CDATA[<P>我今天找到了在C#中连接ADO(MD)的例子。很简单好用！<BR><BR>1 创建一个web项目；<BR>2 添加Com引用Microsoft ADO(MD)2.8；<BR>3 在web页面上添加一个按钮和一个文本框（多行）；<BR>4 点击“按钮”添加事件代码如下：</P><SPAN lang=EN-US style="FONT-SIZE: 10.5pt">
<DIV class=HtmlCode title=点击运行该代码！ style="CURSOR: pointer" onclick="preWin=window.open('','','');preWin.document.open();preWin.document.write(this.innerText);preWin.document.close();" ;>
<P><SPAN lang=EN-US style="FONT-SIZE: 10.5pt">string query;<BR>// Assign the MDX query to a string.<BR>query = TextBox1.Text.ToString();<BR>// Create an <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:place w:st="on"><st1:City w:st="on">ADO</st1:City> <st1:State w:st="on">MD</st1:State></st1:place> catalog and an ADO MD Cellset.<BR>ADOMD.Catalog oAdoMDCat = new ADOMD.CatalogClass();<BR>ADOMD.Cellset oAdoMDCellSet = new ADOMD.Cellset();<BR>try<BR>{<BR>&nbsp;&nbsp;&nbsp; // Open a connection to the Analysis Server, <BR>&nbsp;&nbsp;&nbsp; // and then run the MDX query.<BR>&nbsp;&nbsp;&nbsp; oAdoMDCat.let_ActiveConnection("Provider=MSOLAP.1;" + <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Data Source=localhost;" + <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Initial Catalog=Foodmart 2000");<BR>&nbsp;&nbsp;&nbsp; oAdoMDCellSet.Open(query, oAdoMDCat.ActiveConnection);<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10.5pt">&nbsp;&nbsp;&nbsp; // Create the pos object to contain two ordinals <BR>&nbsp;&nbsp;&nbsp; // for the coordinate.<BR>&nbsp;&nbsp;&nbsp; int numaxes = oAdoMDCellSet.Axes.Count;<BR>&nbsp;&nbsp;&nbsp; object[] pos = new object[numaxes];<BR>&nbsp;&nbsp;&nbsp; int posval = 140;<o:p></o:p></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10.5pt">&nbsp;&nbsp;&nbsp; // Traverse through the pages.<BR>&nbsp;&nbsp;&nbsp; for (int pages = 0; pages &lt;= oAdoMDCellSet.Axes.Count ; pages++)<BR>&nbsp;&nbsp;&nbsp; {<o:p></o:p></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Traverse through the columns to write a table header.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Write("&lt;Table style =" + '"' + "Z-ORDER = 103; LEFT: 20px;" + <BR>" WIDTH:" +&nbsp;&nbsp;&nbsp; "800px; POSITION: absolute; TOP: " + <BR>posval.ToString()+"px" + '"' + "HEIGHT: 110px" + <BR>"cellSpacing=1 cellPadding=1 width=600 border=1&gt; &lt;TR&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int ia = 0; ia &lt;= oAdoMDCellSet.Axes[0].Positions.Count - 1; ia++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>// If a page exists, write the name of the page.<BR>if (numaxes&gt;2)<BR>&nbsp;&nbsp;&nbsp; Response.Write("&lt;TD&gt;" + <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oAdoMDCellSet.Axes[2].Positions[pages].Members[0].<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Caption.ToString() <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + "&lt;/TD&gt;");<BR>// Write the name of the columns.<BR>Response.Write("&lt;TD&gt;" + <BR>&nbsp;&nbsp;&nbsp; oAdoMDCellSet.Axes[0].Positions[ia].Members[0].<BR>&nbsp;&nbsp;&nbsp; Caption.ToString()+<BR>&nbsp;&nbsp;&nbsp; "&lt;/TD&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Write("&lt;/TR&gt;");<o:p></o:p></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Traverse through the rows.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int j = 0; j &lt;=oAdoMDCellSet.Axes[1].Positions.Count - 1; <BR>j ++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>// Write the dimension member name.<BR>Response.Write("&lt;TR&gt;&lt;TD&gt;" + <BR>&nbsp;&nbsp;&nbsp; oAdoMDCellSet.Axes[1].Positions[j].Members[0].<BR>&nbsp;&nbsp;&nbsp; Caption.ToString() + <BR>&nbsp;&nbsp;&nbsp; "&lt;/TD&gt;");<o:p></o:p></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10.5pt">// Traverse through the columns.<BR>for (int i = 0; i &lt;= oAdoMDCellSet.Axes[0].Positions.Count - 1; <BR>&nbsp;&nbsp;&nbsp; i++)<BR>{<BR>&nbsp;&nbsp;&nbsp; // Load the cell coordinates to the pos object.<BR>&nbsp;&nbsp;&nbsp; pos[0] = System.Convert.ToInt16(oAdoMDCellSet.Axes[0].<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Positions[i].Ordinal.ToString());<BR>&nbsp;&nbsp;&nbsp; pos[1] = System.Convert.ToInt16(oAdoMDCellSet.Axes[1].<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Positions[j].Ordinal.ToString());<BR>&nbsp;&nbsp;&nbsp; if (numaxes&gt;2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pos[2] = System.Convert.ToInt16(<BR>oAdoMDCellSet.Axes[2].Positions[pages].<BR>Ordinal.ToString());<BR>&nbsp;&nbsp;&nbsp; // Retrieve the value of a cell.<BR>&nbsp;&nbsp;&nbsp; ADOMD.Cell cell = oAdoMDCellSet.get_Item(ref pos);<o:p></o:p></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10.5pt">&nbsp;&nbsp;&nbsp; // Write the FormattedValue property.<BR>&nbsp;&nbsp;&nbsp; Response.Write("&lt;TD&gt;" + cell.FormattedValue + "&lt;/TD&gt;");<BR>&nbsp;&nbsp;&nbsp; posval=posval+25;<BR>}<BR>Response.Write("&lt;/TR&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Write("&lt;/Table&gt;");<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; // Close the Cellset.<BR>&nbsp;&nbsp;&nbsp; oAdoMDCellSet.Close();<BR>}<BR>catch (Exception goof)<BR>{<BR>&nbsp;&nbsp;&nbsp; string err_message;<BR>&nbsp;&nbsp;&nbsp; err_message=goof.Message.ToString();<BR>&nbsp;&nbsp;&nbsp; Response.Write(err_message.ToString());<BR>}<o:p></o:p></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10.5pt">// Release the Cellset object and the Catalog object from the memory.<BR>System.Runtime.InteropServices.Marshal.<BR>&nbsp;&nbsp;&nbsp; ReleaseComObject(oAdoMDCellSet);<BR>System.Runtime.InteropServices.Marshal.<BR>&nbsp;&nbsp;&nbsp; ReleaseComObject(oAdoMDCat);<BR>GC.Collect();<BR>GC.GetTotalMemory(true);<BR>GC.WaitForPendingFinalizers();<o:p></o:p></SPAN></P></DIV>
<P>5 编译，然后在文本框中输入：</P><SPAN style="COLOR: #0000ff"><FONT size=3>
<DIV class=HtmlCode title=点击运行该代码！ style="CURSOR: pointer" onclick="preWin=window.open('','','');preWin.document.open();preWin.document.write(this.innerText);preWin.document.close();" ;>
<P><SPAN style="COLOR: #0000ff"><FONT size=3>select</FONT></SPAN><FONT size=3><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>{</SPAN><SPAN style="COLOR: #ff0000">[</SPAN><SPAN style="COLOR: #ff0000">Measures</SPAN><SPAN style="COLOR: #ff0000">]</SPAN><SPAN style="COLOR: #000000">.Members}&nbsp;</SPAN><SPAN style="COLOR: #0000ff">on</SPAN></FONT><FONT size=3><SPAN style="COLOR: #000000">&nbsp;columns,&nbsp;<BR><IMG src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>{</SPAN><SPAN style="COLOR: #ff0000">[</SPAN><SPAN style="COLOR: #ff0000">Promotion&nbsp;Media</SPAN><SPAN style="COLOR: #ff0000">]</SPAN><SPAN style="COLOR: #000000">.Members}&nbsp;</SPAN><SPAN style="COLOR: #0000ff">on</SPAN></FONT><FONT size=3><SPAN style="COLOR: #000000">&nbsp;rows&nbsp;<BR><IMG src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">from</SPAN><SPAN style="COLOR: #000000">&nbsp;Sales</SPAN></FONT></P></DIV></FONT></SPAN></SPAN>]]></description>
</item><item>
<title><![CDATA[C#实现对RTF编码的显示]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=21514</link>
<author>flyby</author>
<pubDate>2007/1/6 23:20:31</pubDate>
<description><![CDATA[<P>近来遇到一个WEB项目，需要从数据库中读取RTF编码（中文）格式的文本并显示在网页中。如果在网页中用RichTextBox控件显示，则对客户端的浏览器有要求。所以我想用服务器段来实现这个工作。</P>
<P>在.NET的命名空间System.Windows.Forms中，有一个RichTextBox的组建。通过它提供的方法来编写一个转换函数非常方便。</P>
<P>1、引用命名空间，如果是web项目，需要现添加引用。</P>
<P>using System.Windows.Forms;</P>
<P>2、编写函数如下</P>
<P>public static&nbsp;string RtfToText(string rtfCode)<BR>{<BR>&nbsp;&nbsp;&nbsp;RichTextBox rtfObj = new RichTextBox();<BR>&nbsp;&nbsp;&nbsp;rtfObj.Rtf = rtfCode;<BR>&nbsp;&nbsp;&nbsp;return&nbsp;rtfObj.Text;<BR>}</P>]]></description>
</item><item>
<title><![CDATA[Select的OnChange()事件]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=8864</link>
<author>flyby</author>
<pubDate>2005/9/29 10:36:50</pubDate>
<description><![CDATA[<A>　<SPAN class=unnamed3><FONT face=Verdana><FONT size=2>我们用Select的onchange事件时,常会遇到这样一个问题,那就是连续选相同一项时,不触发onchange事件.select的onchange事件就是这样子的.你得有Change(改变),才能触发该事件....<BR><BR>掌握了它的特性后,相应的解决办法也很简单.<BR><BR>&lt;select name=sel onchange="bao(this.options[this.options.selectedIndex].value)"&gt;<BR>&lt;option value=""&gt;请选择<BR>&lt;option value="1"&gt;Item 1<BR>&lt;option value="2"&gt;Item 2<BR>&lt;option value="3"&gt;Item 3<BR>&lt;/select&gt;<BR>&lt;script&gt;<BR>function bao(s)<BR>{<BR>&nbsp;&nbsp;&nbsp; txt.value+=s;<BR>&nbsp;&nbsp;&nbsp; //选择后,让第一项被选中,这样,就有Change啦.</FONT><BR></FONT><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; document.all.sel.options[0].selected=true;<BR>}<BR>&lt;/script&gt;<BR>&lt;textarea id=txt&gt;&lt;/textarea&gt;</FONT></SPAN></A>]]></description>
</item><item>
<title><![CDATA[网络机器人]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=8432</link>
<author>flyby</author>
<pubDate>2005/9/9 9:09:55</pubDate>
<description><![CDATA[<P>&nbsp;&nbsp;&nbsp; 网络机器人又称Splider程序，是一种专业的Bot程序。用于查找大量的Web页面。它从一个简单的起始web页面开始，通过获取超链接再访问其他页面，如此反复理论上可以获得互联网上所有的页面。</P>
<P>&nbsp;&nbsp;&nbsp; </P>]]></description>
</item><item>
<title><![CDATA[FoxPro：关于日期的操作]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=8042</link>
<author>flyby</author>
<pubDate>2005/8/26 15:04:26</pubDate>
<description><![CDATA[<P>近来有个项目，需要做新老系统之间的数据交换。而老系统用的是VFP开发的。使我“有幸”开始学习VFP语句。</P>
<P>对于日期的操作我觉得是很不方便的，首先，读取出来的日期格式为“mm/dd/yy”，如果想插入sql数据库中，得做转换工作；再者，往VFP中插入日期格式的字符串，也得先转化为 ctod('mm/dd/yy')才能插入进去。</P>
<P>以下是我对VFP的简单学习：</P>
<P>一、条件查询</P>
<P>select * from mytable where mydate = ctod('08/31/2005')</P>
<P>sleect * from mytable where year(mydate)=2005 and month(mydate)=8&nbsp;</P>
<P>二、插入语句</P>
<P>insert into mytable(...mydate...)values(...ctod('08/31/2005')...)</P>
<P>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[C#：使用 ConfigurationSettings 来读取配置信息]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7991</link>
<author>flyby</author>
<pubDate>2005/8/24 14:22:28</pubDate>
<description><![CDATA[<P>下面分几种情况来看.net中，默认那个配置文件起作用。</P>
<P>情况1：</P>
<P>如果是一个标准的Win独立应用，或者一个标准的WEB独立应用，就不用说了，大家都知道。<BR>配置文件定义配置信息<BR>用下面代码，简单读取配置信息。<BR>using System.Configuration;<BR>string ww = ConfigurationSettings.AppSettings["SQLConnString"];<BR>// 或者其他 ConfigurationSettings 类的方法获得配置信息</P>
<P>情况2：</P>
<P>如果是一个需要被Win程序调用的DLL组件，<BR>配置信息放在调用它的Win程序的配置文件(app.config)中，<BR>调用代码仍然是情况1简单的那两行调用代码。</P>
<P><BR>情况3：</P>
<P>如果是一个需要被WEB程序调用的DLL组件，<BR>配置信息放在调用它的WEB程序的配置文件（web.config）中，<BR>调用代码仍然是情况1简单的那两行调用代码。</P>
<P><BR>情况4：</P>
<P>如果你编写的是一个独立的Win的服务，<BR>跟情况1完全一样，<BR>把配置信息文件放到Win服务项目中。<BR>Win服务中再用情况1上面的代码直接调用即可。</P>
<P>情况5：</P>
<P>如果是一个组件，被Win服务所调用，<BR>跟情况2、3完全一样，<BR>把配置信息文件放到Win服务项目中。<BR>组件中，再用情况1上面的代码直接调用即可。</P>
<P>情况6：</P>
<P>如果你编写的是一个独立的Com+企业应用。并且这个Com+应用激活模式是“库应用程序”，组件将在创建者进程中被激活。<BR>跟情况 2、3、5 类似，这时候的Com+就可以认为是一个组件。<BR>把配置信息文件放到调用这个Com+的项目中。<BR>这个COM+中，用情况1上面的代码直接调用即可。</P>
<P>分析以上几种情况：<BR>起作用的配置文件其实是当前应用程序域的配置文件，你可以在代码中通过AppDomain.CurrentDomain.SetupInformation.ConfigurationFile<BR>这个代码，获得当前起作用的配置文件。</P>
<P>情况7：</P>
<P>如果你编写的是一个独立的Com+企业应用。并且这个Com+应用激活模式是“服务器应用程序”，组件将在专用服务器进程中被激活。<BR>即这样的配置 [assembly: ApplicationActivation(ActivationOption.Server) ]<BR>这时候，麻烦来了，<BR>我们用 AppDomain.CurrentDomain.SetupInformation.ConfigurationFile 获得的是当前有效配置文件是<BR>C:\WINDOWS\system32\dllhost.exe.config<BR>这个文件默认并不存在，我们自己手工创建这个文件，并把配置信息写到这个文件中。<BR>Debug 程序，我们仍看会看到“未将对象引用设置到对象的实例。”这样的异常产生。<BR>以上我们得出的结论并不适用这个情况。</P>
<P>继续分析原因：</P>
<P>微软的Com+并不是一个彻头彻尾的.net应用，里面有大量的非托管代码。<BR>问题就产生在这里，非托管代码中，并没有应用程序域与应用程序域的配置文件的概念。<BR>于是乎，第七种情况就产生了。<BR>第七种情况目前能考虑到的解决方法，就是把配置文件的路径作为一个参数传递进Com+。</P>
<P><BR>另外，如果你的程序是完全意义上的.net程序（也就是不是上述第7中情况）<BR>你是可以修改一个应用程序的默认配置文件的。<BR>具体请看参MSDN中关于<BR>AppDomainSetup.ConfigurationFile 属性&nbsp; 和 IAppDomainSetup.ConfigurationFile 属性 的描述和演示代码。</P>
<P>配置文件描述应用程序域的搜索规则和配置数据。创建应用程序域的宿主负责提供此数据，因为有意义的值因情况不同而异。<BR>例如，ASP.NET 应用程序的配置数据针对每个应用程序、站点和计算机进行存储，而可执行文件的配置数据针对每个应用程序、用户和计算机进行存储。只有宿主知道针对特定情况的配置数据的细节。<BR>当 AppDomain 完成它的第一次绑定后，此属性不得更改。<BR>参见：<BR><A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemappdomainsetupclassconfigurationfiletopic.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemappdomainsetupclassconfigurationfiletopic.asp</A></P>
<P>手工配置应用程序配置文件的范例可以参看下面一篇文章中提到的代码：<BR>Executing ASMX files without a web server <BR><A href="http://radio.weblogs.com/0105476/stories/2002/10/24/executingAsmxFilesWithoutAWebServer.html">http://radio.weblogs.com/0105476/stories/2002/10/24/executingAsmxFilesWithoutAWebServer.html</A></P>
<P><BR>或者看下面的代码，出处：<A href="http://www.gotdotnet.com/team/clr/AppdomainFAQ.aspx">http://www.gotdotnet.com/team/clr/AppdomainFAQ.aspx</A><BR>// C# Sample Code<BR>// File: HelloWorld1.cs<BR>using System;<BR>using System.Threading;</P>
<P>public class HelloWorld<BR>{<BR>public void SayHello(String greeting)<BR>{<BR>Console.WriteLine("In the application domain: " + Thread.GetDomain().FriendlyName);<BR>Console.WriteLine(greeting);<BR>}</P>
<P>public static void Main( String[] argv )<BR>{<BR>HelloWorld o = new HelloWorld();<BR>o.SayHello("Hello World!");<BR>}<BR>}</P>
<P>&nbsp;</P>
<P><BR>// C# Sample Code<BR>// File: ExecAssembly.cs<BR>// Creates a remote application domain and executes an assembly<BR>// within that application domain.</P>
<P>using System;<BR>using System.Reflection;<BR>using System.Runtime.Remoting;<BR>public class ExecAssembly<BR>{<BR>public static void Main( String[] argv )<BR>{<BR>// Set ApplicationBase to the current directory<BR>AppDomainSetup info = new AppDomainSetup();<BR>info.ApplicationBase = "<A href="file:///">file:///</A>" + System.Environment.CurrentDirectory;<BR>// Create an application domain with null evidence<BR>AppDomain dom = AppDomain.CreateDomain("RemoteDomain", null, info);<BR>// Tell the AppDomain to execute the assembly<BR>dom.ExecuteAssembly("HelloWorld1.exe");<BR>// Clean up by unloading the application domain<BR>AppDomain.Unload(dom); <BR>}<BR>} </P>]]></description>
</item><item>
<title><![CDATA[一个可以从数据库中读取表结构的sql语句]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7628</link>
<author>flyby</author>
<pubDate>2005/8/3 10:16:36</pubDate>
<description><![CDATA[<P>试试看吧，这条语句可以从数据库中读取表结构。用这种方法制作数据字典很不错。</P>
<P>SELECT SysObjects.Name as tb_name, SysColumns.Name as col_name, SysTypes.Name as col_type, SysColumns.Length as col_len, isnull(SysProperties.Value,SysColumns.Name) as col_memo,<BR>case when SysColumns.name in<BR>(select 主键=a.name<BR>FROM syscolumns a<BR>inner join sysobjects b on a.id=b.id and b.xtype='U' and b.name&lt;&gt;'dtproperties'<BR>where exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (<BR>SELECT name FROM sysindexes WHERE indid in(<BR>SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid<BR>)))<BR>and b.name=SysObjects.Name<BR>)<BR>then 1 else 0 end as is_key<BR>FROM SysObjects,SysTypes,SysColumns<BR>LEFT JOIN SysProperties ON (Syscolumns.Id = Sysproperties.Id AND<BR>Syscolumns.Colid = Sysproperties.Smallid)<BR>WHERE (Sysobjects.Xtype ='u' OR Sysobjects.Xtype ='v')<BR>AND Sysobjects.Id = Syscolumns.Id AND SysTypes.XType = Syscolumns.XType<BR>AND SysTypes.Name &lt;&gt; 'sysname' AND Sysobjects.Name Like 'Ads_agent%' ORDER By SysObjects.Name, SysColumns.colid</P>]]></description>
</item><item>
<title><![CDATA[C#中动态数组设计原理]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7335</link>
<author>flyby</author>
<pubDate>2005/7/20 9:30:51</pubDate>
<description><![CDATA[
<P>&nbsp;C＃中所有数据类型都来自Object类，所以数组可以存储不同的类型，但是数组对象一旦创建，长度就不可改变，在实际应用中存在不方便之处。下面例程介绍了一种开发动态数组的方法。</P>
<P><FONT style="BACKGROUND-COLOR: #ffffee" color=#3300ff>&nbsp;/// &lt;summary&gt;<BR>&nbsp;/// ObjArray 的摘要说明。<BR>&nbsp;/// 动态数组<BR>&nbsp;/// &lt;/summary&gt;<BR>&nbsp;/// &lt;example&gt;<BR>&nbsp;/// ObjectArray DynArr = new ObjectArray();<BR>&nbsp;/// DynArr.addItem(11);<BR>&nbsp;/// DynArr.addItem("12");<BR>&nbsp;/// DynArr.getItem(i);<BR>&nbsp;/// DynArr.clearAll();<BR>&nbsp;/// &lt;/example&gt;<BR>&nbsp;public class ObjArray<BR>&nbsp;{<BR>&nbsp;&nbsp;//对象数组<BR>&nbsp;&nbsp;private object[] Items;</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ffffee" color=#3300ff>&nbsp;&nbsp;//对象数组的长度<BR>&nbsp;&nbsp;public int Length<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;get<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(Items == null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return Items.Length;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ffffee" color=#3300ff>&nbsp;&nbsp;/// &lt;summary&gt;<BR>&nbsp;&nbsp;/// 构造函数<BR>&nbsp;&nbsp;/// &lt;/summary&gt;<BR>&nbsp;&nbsp;public ObjArray()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;//<BR>&nbsp;&nbsp;&nbsp;// TODO: 在此处添加构造函数逻辑<BR>&nbsp;&nbsp;&nbsp;//<BR>&nbsp;&nbsp;&nbsp;Items = null;<BR>&nbsp;&nbsp;}</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ffffee" color=#3300ff>&nbsp;&nbsp;/// &lt;summary&gt;<BR>&nbsp;&nbsp;/// 添加一元素<BR>&nbsp;&nbsp;/// &lt;/summary&gt;<BR>&nbsp;&nbsp;/// &lt;param name="item"&gt;元素&lt;/param&gt;<BR>&nbsp;&nbsp;public void addItem(object item)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;if(Items == null)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;Items = new object[1];<BR>&nbsp;&nbsp;&nbsp;&nbsp;Items[0] = item;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;object[] tmpList = new object[Length+1];<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;Length;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpList[i] = Items[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;}</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ffffee" color=#3300ff>&nbsp;&nbsp;&nbsp;&nbsp;tmpList[Length] = item;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Items = tmpList;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ffffee" color=#3300ff>&nbsp;&nbsp;/// &lt;summary&gt;<BR>&nbsp;&nbsp;///&nbsp; 删除一个元素<BR>&nbsp;&nbsp;/// &lt;/summary&gt;<BR>&nbsp;&nbsp;/// &lt;param name="index"&gt;元素索引&lt;/param&gt;<BR>&nbsp;&nbsp;public void deleteItem(int index)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;if(Items == null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;//如果索引没有越界<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(index &gt;=0 &amp;&amp; index &lt; Length &amp;&amp; Length&gt;1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;object[] tmpList = new object[Length-1];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;index;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpList[i] = Items[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i=index+1;i&lt;Length;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpList[i-1] = Items[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ffffee" color=#3300ff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Items = tmpList;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(index == 0 &amp;&amp; Length&lt;=1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Items = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}</FONT></P>
<P><BR><FONT style="BACKGROUND-COLOR: #ffffee" color=#3300ff>&nbsp;&nbsp;/// &lt;summary&gt;<BR>&nbsp;&nbsp;/// 读取元素<BR>&nbsp;&nbsp;/// &lt;/summary&gt;<BR>&nbsp;&nbsp;/// &lt;param name="index"&gt;元素索引&lt;/param&gt;<BR>&nbsp;&nbsp;/// &lt;returns&gt;一个元素&lt;/returns&gt;<BR>&nbsp;&nbsp;public object getItem(int index)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;if(Items == null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;return null;<BR>&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(index &gt;= 0 &amp;&amp; index &lt; Length)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return Items[index];<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return null;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ffffee" color=#3300ff>&nbsp;&nbsp;/// &lt;summary&gt;<BR>&nbsp;&nbsp;/// 清空数组<BR>&nbsp;&nbsp;/// &lt;/summary&gt;<BR>&nbsp;&nbsp;public void clearAll()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;Items = null;<BR>&nbsp;&nbsp;}<BR>&nbsp;}</FONT></P>]]></description>
</item><item>
<title><![CDATA[填写Web表单时按回车键跳到下一个控件]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7322</link>
<author>flyby</author>
<pubDate>2005/7/19 17:00:51</pubDate>
<description><![CDATA[<A></A>
<P>在制作web表单时，习惯了CS程序的用户总希望，按回车键可以自动跳到下一个控件。以下程序实现了这种功能。 </P>
<P><BR>&lt;form id="form1" name="form1" method="post"&gt; <BR>&lt;br&gt;text1&lt;input name="input1" id=Text1 tabIndex=0&gt;<BR>&lt;br&gt;text2&lt;input name="input2" id=Text2 tabIndex=0&gt;<BR>&lt;br&gt;text3&lt;input name="input3" id=Text3 tabIndex=0&gt; <BR>&lt;br&gt;Picture&lt;img src="Iamge/logo.gif" tabIndex =-1&gt;<BR>&lt;br&gt;text4&lt;input id=Img1 name="input4" id=Text4 tabIndex=0&gt; <BR>&lt;input id="Btn1" type="button" value="test" onclick="alert('你点击了按钮！');"&gt; <BR>&lt;/form&gt; </P>
<P>&lt;script&gt; <BR>function look()<BR>{ if(event.keyCode == 13) event.keyCode = 9; } <BR>document.onkeydown=look; <BR>form1.Text1.focus(); <BR>&lt;/script&gt;</P>
<P>执行结果：首先光标停留在Text1内，当按回车键时，触发look函数，将回车键（13）替换成Tab键（9），这样就象按了tab键一样，光标将跳到Text2内，依次跳到Text3、Text4。因为Img1的tabindex属性为-1，小于0，而tabindex将从小到大一次跳转，所以不会跳到Img1上去。</P>
<P>我们可以自己设置tabindex的顺论，并设置那些不需要在tab键中到达的空间的tabindex为-1。</P>]]></description>
</item><item>
<title><![CDATA[Ndoc —.net代码文档生成利器]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7222</link>
<author>flyby</author>
<pubDate>2005/7/14 13:38:51</pubDate>
<description><![CDATA[
<P>英文版下载地址：<A href="http://ndoc.sourceforge.net/">http://ndoc.sourceforge.net</A></P>
<P>中文版下载地址：<A href="http://www.percyboy.com/w/ndoc/default.aspx">http://www.percyboy.com/w/ndoc/default.aspx</A></P>
<P>用它可以自动生成程序文档，具体不在说明。这里介绍一下要生成高质量的文档，需要注意的问题是，要正确使用C＃编译器提供的文档注释信息。</P>
<P>C# 编译器将代码中的文档注释处理到 XML 文件中。需要在您的站点实现的具体内容是处理 XML 文件以创建文档。</P>
<P>在代码构造（如类型和类型成员）上处理标记。编译器将处理任何为有效 XML 的标记。下列标记提供了用户文档中常用的功能：</P>
<P><STRONG>&lt;c&gt;<BR></STRONG>&lt;c&gt;text&lt;/c&gt;<BR>其中：text 希望将其指示为代码的文本。</P>
<P><STRONG>&lt;para&gt;</STRONG><BR>&lt;para&gt;content&lt;/para&gt;<BR>其中：content 段落文本。</P>
<P><STRONG>&lt;see&gt; <BR></STRONG>&lt;see cref="member"/&gt;<BR>其中：cref = "member" 对可以通过当前编译环境进行调用的成员或字段的引用。编译器检查到给定代码元素</P>
<P>存在后，将 member 传递给输出 XML 中的元素名。必须将 member 括在双引号 (" ") 中。 </P>
<P><STRONG>&lt;code&gt;<BR></STRONG>&lt;code&gt;content&lt;/code&gt;<BR>其中：content 希望将其标记为代码的文本。</P>
<P><STRONG>&lt;param&gt;<BR></STRONG>&lt;param name='name'&gt;description&lt;/param&gt;<BR>其中：name 方法参数名。将此名称用单引号括起来 (' ')。 <BR>description 参数说明。 </P>
<P><STRONG>&lt;seealso&gt;</STRONG><BR>&lt;seealso cref="member"/&gt;<BR>其中：cref = "member" <BR>对可以通过当前编译环境进行调用的成员或字段的引用。编译器检查到给定代码元素存在后，将 member 传递给输出 XML 中的元素名。必须将 member 括在双引号 ("") 中。 <BR><STRONG>&lt;example&gt;<BR></STRONG>&lt;example&gt;description&lt;/example&gt;<BR>其中：description 代码示例的说明。</P>
<P><STRONG>&lt;paramref&gt;<BR></STRONG>&lt;paramref name="name"/&gt;<BR>其中：name 要引用的参数名。将此名称用双引号括起来 (" ")。</P>
<P><STRONG>&lt;summary&gt;<BR></STRONG>&lt;summary&gt;description&lt;/summary&gt;<BR>其中：description 对象的摘要。&nbsp;<BR><STRONG>&lt;exception&gt;<BR></STRONG>&lt;exception cref="member"&gt;description&lt;/exception&gt;<BR>其中：<BR>cref = "member" <BR>对可从当前编译环境中获取的异常的引用。编译器检查到给定异常存在后，将member 转换为输出 XML 中的规范化元素名。必须将 member 括在双引号 (" ") 中。 <BR>description <BR>说明。&nbsp;<BR><STRONG>&lt;permission&gt;<BR></STRONG>&lt;permission cref="member"&gt;description&lt;/permission&gt;<BR>其中： <BR>cref = "member" <BR>对可以通过当前编译环境进行调用的成员或字段的引用。编译器检查到给定代码元素存在后，将 member 转换为输出 XML 中的规范化元素名。必须将 member 括在双引号 (" ") 中。 <BR>description <BR>对成员的访问的说明。</P>
<P><STRONG>&lt;value&gt;</STRONG><BR>&lt;value&gt;property-description&lt;/value&gt;<BR>其中：<BR>property-description <BR>属性的说明。&nbsp;<BR><STRONG>&lt;include&gt;<BR></STRONG>&lt;include file='filename' path='tagpath[@name="id"]' /&gt;<BR>其中： <BR>filename <BR>包含文档的文件名。该文件名可用路径加以限定。将 filename 括在单引号中 (' ')。 tagpath <BR>filename 中指向标记名的标记路径。将此路径括在单引号中 (' ')。 <BR>name <BR>注释前边的标记中的名称说明符；名称具有一个 id。 <BR>id <BR>位于注释之前的标记的 ID。将此 ID 括在双引号中 (" ")。</P>
<P><STRONG>&lt;remarks&gt;<BR></STRONG>&lt;remarks&gt;description&lt;/remarks&gt;<BR>其中：<BR>description <BR>成员的说明。<BR>&nbsp;&nbsp; <BR><STRONG>&lt;list&gt;</STRONG><BR>&lt;list type="bullet" | "number" | "table"&gt;<BR>&nbsp;&nbsp; &lt;listheader&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;term&gt;term&lt;/term&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;description&gt;description&lt;/description&gt;<BR>&nbsp;&nbsp; &lt;/listheader&gt;<BR>&nbsp;&nbsp; &lt;item&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;term&gt;term&lt;/term&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;description&gt;description&lt;/description&gt;<BR>&nbsp;&nbsp; &lt;/item&gt;<BR>&lt;/list&gt;<BR>其中：term <BR>要定义的项，该项将在 text 中定义。 <BR>description <BR>项目符号列表或编号列表中的项或者 term 的定义。</P>
<P><STRONG>&lt;returns&gt;</STRONG><BR>&lt;returns&gt;description&lt;/returns&gt;<BR>其中：description <BR>返回值的说明。</P>
<SCRIPT>alert('hello');</SCRIPT>]]></description>
</item><item>
<title><![CDATA[在web页面中打开、编辑、保存word文件]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7218</link>
<author>flyby</author>
<pubDate>2005/7/14 11:07:57</pubDate>
<description><![CDATA[
<P>在安装Office2003以后，有一个ActiveX控件被安装到了系统中，这个控件位于“Program Files\Microsoft Office\OFFICE11\owssupp.dll”。通过这个控件，客户端页面上的JavaScript就可以激活本地的Office软件，来实现打开、编辑Office文档。（另，Office XP应该就已经包含这个ActiveX控件了。）</P>
<P>首先，用Script创建一个本地的对象：</P>
<P><FONT color=#0000ff>openDocObj = new ActiveXObject("SharePoint.OpenDocuments.2"); // 为了兼容Office XP，可以创建“SharePoint.OpenDocuments.1”</FONT></P>
<P>然后，调用openDocObj的相应的方法。比如打开服务器上的一个Office文档：</P>
<P><FONT color=#0000ff>openDocObj.ViewDocument("<A href="http://www.abc.com/documents/sample.doc"><FONT color=#0000ff>http://www.abc.com/documents</FONT></A>/sample.doc");</FONT></P>
<P>openDocObj对象会根据参数中不同的Office文档类型（.doc、.xls、.ppt）来打开不同的程序（Word、Excel、PowerPoint）。ViewDocument()方法还有一个重载签名，可以让我们手工指定激活哪个程序来打开文档：</P>
<P><FONT color=#0000ff>openDocObj.ViewDocument("</FONT><A href="http://www.abc.com/documents/sample.doc"><FONT color=#0000ff>http://www.abc.com/documents/sample.doc</FONT></A><FONT color=#0000ff>", 要激活的程序的ProgID);</FONT></P>
<P>那么要打开Office程序在线编辑文件又如何？</P>
<P><FONT color=#0000ff>openDocObj.EditDocument("</FONT><A href="http://www.abc.com/documents/sample.doc"><FONT color=#0000ff>http://www.abc.com/documents/sample.doc</FONT></A><FONT color=#0000ff>");</FONT></P>
<P>就可以直接激活Word，在Word里面编辑文档，然后直接点击Word里面的保存功能，就可以将文件保存会服务器上了。注意：为了让Word能将编辑后的文档直接保存会服务器，访问Web站点的当前上下文的Windows Identity必须对服务器的相应目录（即“http://www.abc.com/documents”这个虚拟目录所对应的服务器上的物理路径）有相应的写权限，否则保存动作会失败。编辑完成后，EditDocument()会返回一个bool值，来反映编辑操作是否成功。</P>
<P>我们还可以通过打开服务器上的一个文档模版，来创建一个新的文档：</P>
<P><FONT color=#0000ff>openDocObj.CreateNewDocument("</FONT><A href="http://%20www.abc.com/documents/sampleTemplate.dot"><FONT color=#0000ff>h t t p:// www.abc.com/documents/sampleTemplate.dot</FONT></A><FONT color=#0000ff>", "</FONT><A href="http://www.abc.com/documents/"><FONT color=#0000ff>http://www.abc.com/documents/</FONT></A><FONT color=#0000ff>");</FONT></P>
<P>就可以使用“http://www.abc.com/documents/sampleTemplate.dot”这个模版来创建一个新的文档，默认新文档的保存地点是“http://www.abc.com/documents/”。创建新文档时使用的程序取决于模版文件的类型（比如.dot模版会对应Word）。新文档的保存同样需要注意权限问题。CreateNewDocument()方法同样会返回一个bool值来反映操作是否成功。</P>
<P>CreateNewDocument()方法的第一个参数，除了可以使用一个模版的地址外，还可以直接指定为希望用来创建新文档的客户端程序的ProgID。</P>
<P>（摘自<A href="http://blog.joycode.com/kaneboy/archive/2004/11/03/37889.aspx">http://blog.joycode.com/kaneboy/archive/2004/11/03/37889.aspx</A>）</P>]]></description>
</item><item>
<title><![CDATA[做一个漂亮的简历]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7207</link>
<author>flyby</author>
<pubDate>2005/7/14 9:29:21</pubDate>
<description><![CDATA[<P>现今的社会，我们需要面对多次的工作面试，做一个漂亮的简历是至关重要的事情。</P>
<P>制作简历的原则：一、要有针对性 二、要表现自己的主要能力</P>
<P>一般情况下，简历分基本资料、教育经历、工作经历、专业能力和其他资料。</P>
<P>基本资料：必不可少，而且要详细。</P>
<P>教育经历：本科以上及与应聘相关的培训经历。</P>
<P>工作经历：不要写太多，不要编造，尽量选择相关的工作经历。</P>
<P>专业能力：不要写成多面手，挑与应聘工作相关的主要能力即可。</P>
<P>简历要控制在两页纸内，多与少都要不得。强调的是要诚实，作弊者，惩罚往往来得及时而凶猛。</P>]]></description>
</item><item>
<title><![CDATA[XML HTTP Request object简单使用]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7196</link>
<author>flyby</author>
<pubDate>2005/7/13 16:32:45</pubDate>
<description><![CDATA[
<P><SPAN id=ArticleContent1_ArticleContent1_lblContent>在Web开发中，有时我们希望页面提交但又不刷新当前页，此时可以使用XML HTTP Request object来做处理。</SPAN></P>
<P><SPAN>例如如下代码：<BR></P></SPAN><SPAN>
<P><FONT style="BACKGROUND-COLOR: #ffffee"><FONT color=#3300ff><SPAN>&lt;HTML&gt;<BR>&lt;HEAD&gt;<BR>&lt;TITLE&gt;&lt;/TITLE&gt;<BR>&lt;script language="javascript"&gt;<BR>&nbsp;function func_submit() {<BR>&nbsp;&nbsp;var xmlhttp;<BR>&nbsp;&nbsp;try {<BR>&nbsp;&nbsp;&nbsp;xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");<BR>&nbsp;&nbsp;} catch (e1) {<BR>&nbsp;&nbsp;&nbsp;try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");<BR>&nbsp;&nbsp;&nbsp;} catch (e2) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;alert(e2);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;if (xmlhttp) { &nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;xmlhttp.open("GET", "test.txt",true);<BR>&nbsp;&nbsp;&nbsp;xmlhttp.onreadystatechange=function() {<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (xmlhttp.readyState==4) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById('content').innerHTML=xmlhttp.responseText;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;xmlhttp.send(null);<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&lt;/script&gt;<BR>&lt;/HEAD&gt;<BR>&lt;BODY&gt;<BR>&lt;button onClick="func_submit()"&gt;mysubmit&lt;/button&gt;<BR>&lt;div id="content"&gt;&lt;/div&gt; <BR>&lt;/BODY&gt;<BR>&lt;/HTML&gt;</SPAN> </FONT></FONT></SPAN>
<P><SPAN>此时运行代码，点击提交按钮，可以发现在div节点内部把text.txt文件的内容填充进去了。</P></SPAN>]]></description>
</item><item>
<title><![CDATA[55种网页常用小技巧(javascript)]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7193</link>
<author>flyby</author>
<pubDate>2005/7/13 16:16:22</pubDate>
<description><![CDATA[1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键<BR>&lt;table border oncontextmenu=return(false)&gt;&lt;td&gt;no&lt;/table&gt; 可用于Table<BR>2. &lt;body onselectstart="return false"&gt; 取消选取、防止复制<BR>3. onpaste="return false" 不准粘贴<BR>4. oncopy="return false;" oncut="return false;" 防止复制<BR>5. &lt;link rel="Shortcut Icon" href="favicon.ico"&gt; IE地址栏前换成自己的图标<BR>6. &lt;link rel="Bookmark" href="favicon.ico"&gt; 可以在收藏夹中显示出你的图标<BR>7. &lt;input style="ime-mode:disabled"&gt; 关闭输入法<BR>8. 永远都会带着框架<BR>&lt;script language="JavaScript"&gt;&lt;!--<BR>if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页<BR>// --&gt;&lt;/script&gt;<BR>9. 防止被人frame<BR>&lt;SCRIPT LANGUAGE=JAVASCRIPT&gt;&lt;!-- <BR>if (top.location != self.location)top.location=self.location;<BR>// --&gt;&lt;/SCRIPT&gt;<BR>10. 网页将不能被另存为<BR>&lt;noscript&gt;&lt;iframe src=*.html&gt;&lt;/iframe&gt;&lt;/noscript&gt; <BR>11. &lt;input type=button value=查看网页源代码 <BR>onclick="window.location = "view-source:"+ "<A href="http://www.pconline.com.cn">http://www.pconline.com.cn</A>""&gt;<BR>12.删除时确认<BR>&lt;a href="javascript :if(confirm("确实要删除吗?"))location="boos.asp?&amp;areyou=删除&amp;page=1""&gt;删除&lt;/a&gt; <BR>13. 取得控件的绝对位置<BR>//Javascript<BR>&lt;script language="Javascript"&gt;<BR>function getIE(e){<BR>var t=e.offsetTop;<BR>var l=e.offsetLeft;<BR>while(e=e.offsetParent){<BR>t+=e.offsetTop;<BR>l+=e.offsetLeft;<BR>}<BR>alert("top="+t+"/nleft="+l);<BR>}<BR>&lt;/script&gt;<BR>//VBScript<BR>&lt;script language="VBScript"&gt;&lt;!--<BR>function getIE()<BR>dim t,l,a,b<BR>set a=document.all.img1<BR>t=document.all.img1.offsetTop<BR>l=document.all.img1.offsetLeft<BR>while a.tagName&lt;&gt;"BODY"<BR>set a = a.offsetParent<BR>t=t+a.offsetTop<BR>l=l+a.offsetLeft<BR>wend<BR>msgbox "top="&amp;t&amp;chr(13)&amp;"left="&amp;l,64,"得到控件的位置"<BR>end function<BR>--&gt;&lt;/script&gt;<BR>14. 光标是停在文本框文字的最后<BR>&lt;script language="javascript"&gt;<BR>function cc()<BR>{<BR>var e = event.srcElement;<BR>var r =e.createTextRange();<BR>r.moveStart("character",e.value.length);<BR>r.collapse(true);<BR>r.select();<BR>}<BR>&lt;/script&gt;<BR>&lt;input type=text name=text1 value="123" onfocus="cc()"&gt;<BR>15. 判断上一页的来源<BR>javascript :<BR>document.referrer<BR>16. 最小化、最大化、关闭窗口<BR>&lt;object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"&gt; <BR>&lt;param name="Command" value="Minimize"&gt;&lt;/object&gt;<BR>&lt;object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"&gt; <BR>&lt;param name="Command" value="Maximize"&gt;&lt;/object&gt;<BR>&lt;OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"&gt;<BR>&lt;PARAM NAME="Command" VALUE="Close"&gt;&lt;/OBJECT&gt;<BR>&lt;input type=button value=最小化 onclick=hh1.Click()&gt;<BR>&lt;input type=button value=最大化 onclick=hh2.Click()&gt;<BR>&lt;input type=button value=关闭 onclick=hh3.Click()&gt;<BR>本例适用于IE<BR>17.屏蔽功能键Shift,Alt,Ctrl<BR>&lt;script&gt;<BR>function look(){ <BR>if(event.shiftKey) <BR>alert("禁止按Shift键!"); //可以换成ALT　CTRL<BR>} <BR>document.onkeydown=look; <BR>&lt;/script&gt;<BR>18. 网页不会被缓存<BR>&lt;META HTTP-EQUIV="pragma" CONTENT="no-cache"&gt;<BR>&lt;META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"&gt;<BR>&lt;META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT"&gt;<BR>或者&lt;META HTTP-EQUIV="expires" CONTENT="0"&gt;<BR>19.怎样让表单没有凹凸感？<BR>&lt;input type=text style="border:1 solid #000000"&gt; <BR>或<BR>&lt;input type=text style="border-left:none; border-right:none; border-top:none; border-bottom: <BR>1 solid #000000"&gt;&lt;/textarea&gt;<BR>20.&lt;div&gt;&lt;span&gt;&amp;&lt;layer&gt;的区别？ <BR>&lt;div&gt;(division)用来定义大段的页面元素，会产生转行 <BR>&lt;span&gt;用来定义同一行内的元素，跟&lt;div&gt;的唯一区别是不产生转行 <BR>&lt;layer&gt;是ns的标记，ie不支持，相当于&lt;div&gt;<BR>21.让弹出窗口总是在最上面:<BR>&lt;body onblur="this.focus();"&gt;<BR>22.不要滚动条? <BR>让竖条没有: <BR>&lt;body style="overflow:scroll;overflow-y:hidden"&gt; <BR>&lt;/body&gt; <BR>让横条没有: <BR>&lt;body style="overflow:scroll;overflow-x:hidden"&gt; <BR>&lt;/body&gt; <BR>两个都去掉？更简单了 <BR>&lt;body scroll="no"&gt; <BR>&lt;/body&gt; <BR>23.怎样去掉图片链接点击后，图片周围的虚线？<BR>&lt;a href="#" onFocus="this.blur()"&gt;&lt;img src="logo.jpg" border=0&gt;&lt;/a&gt;<BR>24.电子邮件处理提交表单<BR>&lt;form name="form1" method="post" action="<A href="mailto:****@***.com">mailto:****@***.com</A>" enctype="text/plain"&gt; <BR>&lt;input type=submit&gt;<BR>&lt;/form&gt;<BR>25.在打开的子窗口刷新父窗口的代码里如何写？<BR>window.opener.location.reload()<BR>26.如何设定打开页面的大小<BR>&lt;body onload="top.resizeTo(300,200);"&gt;<BR>打开页面的位置&lt;body onload="top.moveBy(300,200);"&gt;<BR>27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动 <BR>&lt;STYLE&gt; <BR>body <BR>{background-image:url(logo.gif); background-repeat:no-repeat; <BR>background-position:center;background-attachment: fixed} <BR>&lt;/STYLE&gt; <BR>28. 检查一段字符串是否全由数字组成<BR>&lt;script language="Javascript"&gt;&lt;!--<BR>function checkNum(str){return str.match(//D/)==null}<BR>alert(checkNum("1232142141"))<BR>alert(checkNum("123214214a1"))<BR>// --&gt;&lt;/script&gt;<BR>29. 获得一个窗口的大小<BR>document.body.clientWidth; document.body.clientHeight<BR>30. 怎么判断是否是字符<BR>if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");<BR>else alert("全是字符");<BR>31.TEXTAREA自适应文字行数的多少<BR>&lt;textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight"&gt;<BR>&lt;/textarea&gt;<BR>32. 日期减去天数等于第二个日期<BR>&lt;script language=Javascript&gt;<BR>function cc(dd,dadd)<BR>{<BR>//可以加上错误处理<BR>var a = new Date(dd)<BR>a = a.valueOf()<BR>a = a - dadd * 24 * 60 * 60 * 1000<BR>a = new Date(a)<BR>alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")<BR>}<BR>cc("12/23/2002",2)<BR>&lt;/script&gt;<BR>33. 选择了哪一个Radio<BR>&lt;HTML&gt;&lt;script language="vbscript"&gt;<BR>function checkme()<BR>for each ob in radio1<BR>if ob.checked then <BR>window.alert ob.value<BR>next<BR>end function<BR>&lt;/script&gt;&lt;BODY&gt;<BR>&lt;INPUT name="radio1" type="radio" value="style" checked&gt;Style<BR>&lt;INPUT name="radio1" type="radio" value="barcode"&gt;Barcode<BR>&lt;INPUT type="button" value="check" onclick="checkme()"&gt;<BR>&lt;/BODY&gt;&lt;/HTML&gt;<BR>34.脚本永不出错<BR>&lt;SCRIPT LANGUAGE="JavaScript"&gt; <BR>&lt;!-- Hide <BR>function killErrors() { <BR>return true; <BR>} <BR>window.onerror = killErrors; <BR>// --&gt; <BR>&lt;/SCRIPT&gt;<BR>35.ENTER键可以让光标移到下一个输入框<BR>&lt;input onkeydown="if(event.keyCode==13)event.keyCode=9"&gt;<BR>36. 检测某个网站的链接速度：<BR>把如下代码加入&lt;body&gt;区域中:<BR>&lt;script language=Javascript&gt;<BR>tim=1<BR>setInterval("tim++",100)<BR>b=1<BR>var autourl=new Array()<BR>autourl[1]="<A href="http://www.njcatv.net">www.njcatv.net</A>"<BR>autourl[2]="javacool.3322.net"<BR>autourl[3]="<A href="http://www.sina.com.cn">www.sina.com.cn</A>"<BR>autourl[4]="<A href="http://www.nuaa.edu.cn">www.nuaa.edu.cn</A>"<BR>autourl[5]="<A href="http://www.cctv.com">www.cctv.com</A>"<BR>function butt(){<BR>document.write("&lt;form name=autof&gt;")<BR>for(var i=1;i&lt;autourl.length;i++)<BR>document.write("&lt;input type=text name=txt"+i+" size=10 value=测试中……&gt; =》&lt;input type=text <BR>name=url"+i+" size=40&gt; =》&lt;input type=button value=GO <BR>onclick=window.open(this.form.url"+i+".value)&gt;&lt;br&gt;")<BR>document.write("&lt;input type=submit value=刷新&gt;&lt;/form&gt;")<BR>}<BR>butt()<BR>function auto(url){<BR>document.forms[0]["url"+b].value=url<BR>if(tim&gt;200)<BR>{document.forms[0]["txt"+b].value="链接超时"}<BR>else<BR>{document.forms[0]["txt"+b].value="时间"+tim/10+"秒"}<BR>b++<BR>}<BR>function run(){for(var i=1;i&lt;autourl.length;i++)document.write("&lt;img src=http://"+autourl+"/"+Math.random()+" width=1 height=1 <BR>onerror=auto("<A href='http://"+autourl'>http://"+autourl</A>+"")&gt;")}<BR>run()&lt;/script&gt;<BR>37. 各种样式的光标<BR>auto ：标准光标<BR>default ：标准箭头<BR>hand ：手形光标<BR>wait ：等待光标<BR>text ：I形光标<BR>vertical-text ：水平I形光标<BR>no-drop ：不可拖动光标<BR>not-allowed ：无效光标<BR>help ：?帮助光标<BR>all-scroll ：三角方向标<BR>move ：移动标<BR>crosshair ：十字标<BR>e-resize<BR>n-resize<BR>nw-resize<BR>w-resize<BR>s-resize<BR>se-resize<BR>sw-resize<BR>38.页面进入和退出的特效<BR>进入页面&lt;meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)"&gt;<BR>推出页面&lt;meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)"&gt;&nbsp; <BR>这个是页面被载入和调出时的一些特效。duration表示特效的持续时间，以秒为单位。transition表示使用哪种特效，取值为1-23:<BR>　　0 矩形缩小 <BR>　　1 矩形扩大 <BR>　　2 圆形缩小<BR>　　3 圆形扩大 <BR>　　4 下到上刷新 <BR>　　5 上到下刷新<BR>　　6 左到右刷新 <BR>　　7 右到左刷新 <BR>　　8 竖百叶窗<BR>　　9 横百叶窗 <BR>　　10 错位横百叶窗 <BR>　　11 错位竖百叶窗<BR>　　12 点扩散 <BR>　　13 左右到中间刷新 <BR>　　14 中间到左右刷新<BR>　　15 中间到上下<BR>　　16 上下到中间 <BR>　　17 右下到左上<BR>　　18 右上到左下 <BR>　　19 左上到右下 <BR>　　20 左下到右上<BR>　　21 横条 <BR>　　22 竖条 <BR>　　23 以上22种随机选择一种<BR>39.在规定时间内跳转<BR>&lt;META http-equiv=V="REFRESH" content="5;URL=http://www.51js.com"&gt; <BR>40.网页是否被检索<BR>&lt;meta name="ROBOTS" content="属性值"&gt;<BR>　　其中属性值有以下一些:<BR>　　属性值为"all": 文件将被检索，且页上链接可被查询；<BR>　　属性值为"none": 文件不被检索，而且不查询页上的链接；<BR>　　属性值为"index": 文件将被检索；<BR>　　属性值为"follow": 查询页上的链接；<BR>　　属性值为"noindex": 文件不检索，但可被查询链接；<BR>　　属性值为"nofollow": 文件不被检索，但可查询页上的链接。<BR>41、email地址的分割<BR>把如下代码加入&lt;body&gt;区域中<BR>&lt;a href="<A href='mailto:webmaster@sina.com">webmaster@sina.com</a'>mailto:webmaster@sina.com"&gt;webmaster@sina.com&lt;/a</A>&gt;<BR>42、流动边框效果的表格<BR>把如下代码加入&lt;body&gt;区域中<BR>&lt;SCRIPT&gt;<BR>l=Array(6,7,8,9,'a','b','b','c','d','e','f')<BR>Nx=5;Ny=35<BR>t="&lt;table border=0 cellspacing=0 cellpadding=0 height="+((Nx+2)*16)+"&gt;&lt;tr&gt;"<BR>for(x=Nx;x&lt;Nx+Ny;x++)<BR>t+="&lt;td width=16 id=a_mo"+x+"&gt;　&lt;/td&gt;"<BR>t+="&lt;/tr&gt;&lt;tr&gt;&lt;td width=10 id=a_mo"+(Nx-1)+"&gt;　&lt;/td&gt;&lt;td colspan="+(Ny-2)+" rowspan="+(Nx)+"&gt;　&lt;/td&gt;&lt;td width=16 id=a_mo"+(Nx+Ny)+"&gt;&lt;/td&gt;&lt;/tr&gt;"<BR>for(x=2;x&lt;=Nx;x++)<BR>t+="&lt;tr&gt;&lt;td width=16 id=a_mo"+(Nx-x)+"&gt;　&lt;/td&gt;&lt;td width=16 id=a_mo"+(Ny+Nx+x-1)+"&gt;　&lt;/td&gt;&lt;/tr&gt;"<BR>t+="&lt;tr&gt;"<BR>for(x=Ny;x&gt;0;x--)<BR>t+="&lt;td width=16 id=a_mo"+(x+Nx*2+Ny-1)+"&gt;　&lt;/td&gt;"<BR>document.write(t+"&lt;/tr&gt;&lt;/table&gt;")<BR>var N=Nx*2+Ny*2<BR>function f1(y){<BR>for(i=0;i&lt;N;i++){<BR>c=(i+y)%20;if(c&gt;10)c=20-c<BR>document.all["a_mo"+(i)].bgColor="'#0000"+l[c]+l[c]+"'"}<BR>y++<BR>setTimeout('f1('+y+')','1')}<BR>f1(1)<BR>&lt;/SCRIPT&gt;<BR>43、JavaScript主页弹出窗口技巧<BR>窗口中间弹出<BR>&lt;script&gt;<BR>window.open("<A href='http://www.cctv.com","","width=400,height=240,top="+(screen.availHeight-240)/2+",left="+(screen.availWidth-400)/2'>http://www.cctv.com","","width=400,height=240,top="+(screen.availHeight-240)/2+",left="+(screen.availWidth-400)/2</A>);<BR>&lt;/script&gt;<BR>============<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;script language="LiveScript"&gt;<BR>function WinOpen() {<BR>&nbsp;&nbsp; msg=open("","DisplayWindow","toolbar=no,directories=no,menubar=no");<BR>&nbsp;&nbsp; msg.document.write("&lt;HEAD&gt;&lt;TITLE&gt;哈 罗!&lt;/TITLE&gt;&lt;/HEAD&gt;");<BR>&nbsp;&nbsp; msg.document.write("&lt;CENTER&gt;&lt;H1&gt;酷 毙 了!&lt;/H1&gt;&lt;h2&gt;这 是&lt;B&gt;JavaScript&lt;/B&gt;所 开 的 视 窗!&lt;/h2&gt;&lt;/CENTER&gt;");<BR>}<BR>&lt;/script&gt;<BR>&lt;/head&gt;<BR>&lt;body&gt;<BR>&lt;form&gt;<BR>&lt;input type="button" name="Button1" value="Push me" onclick="WinOpen()"&gt;<BR>&lt;/form&gt;<BR>&lt;/body&gt;<BR>&lt;/html&gt;<BR>==============<BR>一、在下面的代码中，你只要单击打开一个窗口，即可链接到赛迪网。而当你想关闭时，只要单击一下即可关闭刚才打开的窗口。<BR>&nbsp;　　代码如下： <BR>　　&lt;SCRIPT language="JavaScript"&gt; <BR>　　&lt;！-- <BR>　　function openclk() { <BR>　　another=open('http://www.ccidnet.com'，'NewWindow'); <BR>　　} <BR>　　function closeclk() { <BR>　　another.close(); <BR>　　} <BR>　　//--&gt; <BR>　　&lt;/SCRIPT&gt; <BR>　　&lt;FORM&gt; <BR>　　&lt;INPUT TYPE="BUTTON" NAME="open" value="打开一个窗口" onClick="openclk()"&gt; <BR>　　&lt;BR&gt; <BR>　　&lt;INPUT TYPE="BUTTON" NAME="close" value="关闭这个窗口" onClick="closeclk()"&gt; <BR>　　&lt;/FORM&gt; <BR>　　二、上面的代码也太静了，为何不来点动感呢？如果能给页面来个降落效果那该多好啊！ <BR>　　代码如下： <BR>　　&lt;script&gt; <BR>　　function drop(n) { <BR>　　if(self.moveBy){ <BR>　　self.moveBy (0，-900); <BR>　　for(i = n; i &gt; 0; i--){ <BR>　　self.moveBy(0，3); <BR>　　} <BR>　　for(j = 8; j &gt; 0; j--){ <BR>　　self.moveBy(0，j); <BR>　　self.moveBy(j，0); <BR>　　self.moveBy(0，-j); <BR>　　self.moveBy(-j，0); <BR>　　} <BR>　　} <BR>　　} <BR>　　&lt;/script&gt; <BR>　　&lt;body onLoad="drop(300)"&gt; <BR>　　三、讨厌很多网站总是按照默认窗口打开，如果你能随心所欲控制打开的窗口那该多好。 <BR>　　代码如下: <BR>　　&lt;SCRIPT LANGUAGE="JavaScript"&gt; <BR>　　&lt;！-- Begin <BR>　　function popupPage(l， t， w， h) { <BR>　　var windowprops = "location=no，scrollbars=no，menubars=no，toolbars=no，resizable=yes" + <BR>　　"，left=" + l + "，top=" + t + "，width=" + w + "，height=" + h; <BR>　　var URL = "<A href="http://www.80cn.com">http://www.80cn.com</A>"; <BR>　　popup = window.open(URL，"MenuPopup"，windowprops); <BR>　　} <BR>　　// End --&gt; <BR>　　&lt;/script&gt; <BR>　　&lt;table&gt; <BR>　　&lt;tr&gt; <BR>　　&lt;td&gt; <BR>　　&lt;form name=popupform&gt; <BR>　　&lt;pre&gt; <BR>　　打开页面的参数&lt;br&gt; <BR>　　离开左边的距离: &lt;input type=text name=left size=2 maxlength=4&gt; pixels <BR>　　离开右边的距离: &lt;input type=text name=top size=2 maxlength=4&gt; pixels <BR>　　窗口的宽度: &lt;input type=text name=width size=2 maxlength=4&gt; pixels <BR>　　窗口的高度: &lt;input type=text name=height size=2 maxlength=4&gt; pixels <BR>　　&lt;/pre&gt; <BR>　　&lt;center&gt; <BR>　　&lt;input type=button value="打开这个窗口！" onClick="popupPage(this.form.left.value， this.form.top.value， this.form.width.value， this.form.height.value)"&gt; <BR>　　&lt;/center&gt; <BR>　　&lt;/form&gt; <BR>　　&lt;/td&gt; <BR>　　&lt;/tr&gt; <BR>　　&lt;/table&gt;你只要在相对应的对话框中输入一个数值即可，将要打开的页面的窗口控制得很好。 <BR>44、页面的打开移动<BR>把如下代码加入&lt;body&gt;区域中<BR>&lt;SCRIPT LANGUAGE="JavaScript"&gt;<BR>&lt;!-- Begin<BR>for (t = 2; t &gt; 0; t--) {<BR>for (x = 20; x &gt; 0; x--) {<BR>for (y = 10; y &gt; 0; y--) {<BR>parent.moveBy(0,-x);<BR>&nbsp; }<BR>}<BR>for (x = 20; x &gt; 0; x--) {<BR>for (y = 10; y &gt; 0; y--) {<BR>parent.moveBy(0,x);<BR>&nbsp; }<BR>}<BR>for (x = 20; x &gt; 0; x--) {<BR>for (y = 10; y &gt; 0; y--) {<BR>parent.moveBy(x,0);<BR>&nbsp; }<BR>}<BR>for (x = 20; x &gt; 0; x--) {<BR>for (y = 10; y &gt; 0; y--) {<BR>parent.moveBy(-x,0);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; } <BR>}<BR>//--&gt;<BR>//&nbsp; End --&gt;<BR>&lt;/script&gt;<BR>45、显示个人客户端机器的日期和时间<BR>&lt;script language="LiveScript"&gt;<BR>&lt;!-- Hiding<BR>&nbsp; today = new Date()<BR>&nbsp; document.write("现 在 时 间 是： ",today.getHours(),":",today.getMinutes())<BR>&nbsp; document.write("&lt;br&gt;今 天 日 期 为： ", today.getMonth()+1,"/",today.getDate(),"/",today.getYear());<BR>// end hiding contents --&gt;<BR>&lt;/script&gt;<BR>46、自动的为你每次产生最後修改的日期了： <BR>&lt;html&gt;<BR>&lt;body&gt;<BR>This is a simple HTML- page.<BR>&lt;br&gt;<BR>Last changes:<BR>&nbsp; &lt;script language="LiveScript"&gt;<BR>&nbsp; &lt;!--&nbsp; hide script from old browsers<BR>&nbsp;&nbsp;&nbsp; document.write(document.lastModified)<BR>&nbsp; // end hiding contents --&gt;<BR>&nbsp; &lt;/script&gt;<BR>&lt;/body&gt;<BR>&lt;/html&gt;<BR>47、不能为空和邮件地址的约束：<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;script language="JavaScript"&gt;<BR>&lt;!-- Hide<BR>function test1(form) {<BR>&nbsp; if (form.text1.value == "")<BR>&nbsp;&nbsp;&nbsp; alert("您 没 写 上 任 何 东 西， 请 再 输 入 一 次 !")<BR>&nbsp; else { <BR>&nbsp;&nbsp; alert("嗨 "+form.text1.value+"! 您 已 输 入 完 成 !");<BR>&nbsp; }<BR>}<BR>function test2(form) {<BR>&nbsp; if (form.text2.value == "" || <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; form.text2.value.indexOf(<A href="mailto:'@'">'@'</A>, 0) == -1) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("这 不 是 正 确 的 e-mail address! 请 再 输 入 一 次 !");<BR>&nbsp; else alert("您 已 输 入 完 成 !");<BR>}<BR>// --&gt;<BR>&lt;/script&gt;<BR>&lt;/head&gt;<BR>&lt;body&gt;<BR>&lt;form name="first"&gt;<BR>Enter your name:&lt;br&gt;<BR>&lt;input type="text" name="text1"&gt;<BR>&lt;input type="button" name="button1" value="输 入 测 试" onClick="test1(this.form)"&gt;<BR>&lt;P&gt;<BR>Enter your e-mail address:&lt;br&gt;<BR>&lt;input type="text" name="text2"&gt;<BR>&lt;input type="button" name="button2" value="输 入 测 试" onClick="test2(this.form)"&gt;<BR>&lt;/body&gt;<BR>48、跑马灯<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;script language="JavaScript"&gt;<BR>&lt;!-- Hide<BR>var scrtxt="怎麽样 ! 很酷吧 ! 您也可以试试."+"Here goes your message the visitors to your page will "+"look at for hours in pure fascination...";<BR>var lentxt=scrtxt.length;<BR>var width=100;<BR>var pos=1-width;<BR>function scroll() {<BR>&nbsp; pos++;<BR>&nbsp; var scroller="";<BR>&nbsp; if (pos==lentxt) {<BR>&nbsp;&nbsp;&nbsp; pos=1-width;<BR>&nbsp; }<BR>&nbsp; if (pos&lt;0) {<BR>&nbsp;&nbsp;&nbsp; for (var i=1; i&lt;=Math.abs(pos); i++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scroller=scroller+" ";}<BR>&nbsp;&nbsp;&nbsp; scroller=scroller+scrtxt.substring(0,width-i+1);<BR>&nbsp; }<BR>&nbsp; else {<BR>&nbsp;&nbsp;&nbsp; scroller=scroller+scrtxt.substring(pos,width+pos);<BR>&nbsp; }<BR>&nbsp; window.status = scroller;<BR>&nbsp; setTimeout("scroll()",150);<BR>&nbsp; }<BR>//--&gt;<BR>&lt;/script&gt;<BR>&lt;/head&gt;<BR>&lt;body onLoad="scroll();return true;"&gt;<BR>这里可显示您的网页 !<BR>&lt;/body&gt;<BR>&lt;/html&gt;<BR>49、在网页中用按钮来控制前页，后页和主页的显示。<BR>&lt;html&gt;<BR>&lt;body&gt;<BR>&lt;FORM NAME="buttonbar"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;INPUT TYPE="button" VALUE="Back" onClick="history.back()"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;INPUT TYPE="button" VALUE="JS- Home" onClick="location='script.html'"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;INPUT TYPE="button" VALUE="Next" onCLick="history.forward()"&gt;<BR>&lt;/FORM&gt;<BR>&lt;/body&gt;<BR>&lt;/html&gt;<BR>50、查看某网址的源代码<BR>把如下代码加入&lt;body&gt;区域中<BR>&lt;SCRIPT&gt;<BR>function add()<BR>{<BR>var ress=document.forms[0].luxiaoqing.value<BR>window.location="view-source:"+ress;<BR>}<BR>&lt;/SCRIPT&gt;<BR>输入要查看源代码的URL地址:<BR>&lt;FORM&gt;&lt;input type="text" name="luxiaoqing" size=40 value="<A href='http://"></FORM'>http://"&gt;&lt;/FORM</A>&gt;<BR>&lt;FORM&gt;&lt;br&gt;<BR>&lt;INPUT type="button" value="查看源代码" onClick=add()&gt;<BR>&lt;/FORM&gt;<BR>51、title显示日期<BR>把如下代码加入&lt;body&gt;区域中:<BR>&lt;script language="JavaScript1.2"&gt;<BR>&lt;!--hide<BR>var isnMonth = new<BR>Array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月");<BR>var isnDay = new<BR>Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日");<BR>today = new Date () ;<BR>Year=today.getYear();<BR>Date=today.getDate();<BR>if (document.all)<BR>document.title="今天是: "+Year+"年"+isnMonth[today.getMonth()]+Date+"日"+isnDay[today.getDay()]<BR>//--hide--&gt;<BR>&lt;/script&gt;<BR>52、显示所有链接<BR>把如下代码加入&lt;body&gt;区域中<BR>&lt;script language="JavaScript1.2"&gt;<BR>&lt;!--<BR>function extractlinks(){<BR>var links=document.all.tags("A")<BR>var total=links.length<BR>var win2=window.open("","","menubar,scrollbars,toolbar")<BR>win2.document.write("&lt;font size='2'&gt;一共有"+total+"个连接&lt;/font&gt;&lt;br&gt;")<BR>for (i=0;i&lt;total;i++){<BR>win2.document.write("&lt;font size='2'&gt;"+links[i].outerHTML+"&lt;/font&gt;&lt;br&gt;")<BR>}<BR>}<BR>//--&gt;<BR>&lt;/script&gt;<BR>&lt;input type="button" onClick="extractlinks()" value="显示所有的连接"&gt;<BR>53、回车键换行<BR>把如下代码加入&lt;body&gt;区域中<BR>&lt;script type="text/javascript"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>function handleEnter (field, event) {<BR>&nbsp; var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;<BR>&nbsp; if (keyCode == 13) {<BR>&nbsp;&nbsp; var i;<BR>&nbsp;&nbsp; for (i = 0; i &lt; field.form.elements.length; i++)<BR>&nbsp;&nbsp;&nbsp; if (field == field.form.elements[i])<BR>&nbsp;&nbsp;&nbsp;&nbsp; break;<BR>&nbsp;&nbsp; i = (i + 1) % field.form.elements.length;<BR>&nbsp;&nbsp; field.form.elements[i].focus();<BR>&nbsp;&nbsp; return false;<BR>&nbsp; } <BR>&nbsp; else<BR>&nbsp; return true;<BR>&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&lt;/script&gt;<BR>&lt;form&gt;<BR>&lt;input type="text" onkeypress="return handleEnter(this, event)"&gt;&lt;br&gt;<BR>&lt;input type="text" onkeypress="return handleEnter(this, event)"&gt;&lt;br&gt;<BR>&lt;textarea&gt;回车换行<BR>54、确认后提交<BR>把如下代码加入&lt;body&gt;区域中<BR>&lt;SCRIPT LANGUAGE="JavaScript"&gt;<BR>&lt;!--<BR>function msg(){<BR>if (confirm("你确认要提交嘛！"))<BR>document.lnman.submit()<BR>}<BR>//--&gt;<BR>&lt;/SCRIPT&gt;<BR>&lt;form name="lnman" method="post" action=""&gt;<BR>&nbsp; &lt;p&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;input type="text" name="textfield" value="确认后提交"&gt;<BR>&nbsp; &lt;/p&gt;<BR>&nbsp; &lt;p&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;input type="button" name="Submit" value="提交" onclick="msg();"&gt;<BR>&nbsp; &lt;/p&gt;<BR>&lt;/form&gt;<BR>55、改变表格的内容<BR>把如下代码加入&lt;body&gt;区域中<BR>&lt;script language=javascript&gt;<BR>var arr=new Array()<BR>arr[0]="一一一一一";<BR>arr[1]="二二二二二";<BR>arr[2]="三三三三三";<BR>&lt;/script&gt;<BR>&lt;select onchange="zz.cells[this.selectedIndex].innerHTML=arr[this.selectedIndex]"&gt;<BR>&nbsp; &lt;option value=a&gt;改变第一格&lt;/option&gt;<BR>&nbsp; &lt;option value=a&gt;改变第二格&lt;/option&gt;<BR>&nbsp; &lt;option value=a&gt;改变第三格&lt;/option&gt;<BR>&lt;/select&gt;<BR>&lt;table id=zz border=1&gt;<BR>&nbsp; &lt;tr height=20&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;td width=150&gt;第一格&lt;/td&gt;<BR>&nbsp;&lt;td width=150&gt;第二格&lt;/td&gt;<BR>&nbsp;&lt;td width=150&gt;第三格&lt;/td&gt;<BR>&nbsp; &lt;/tr&gt;<BR>&lt;/table&gt;]]></description>
</item><item>
<title><![CDATA[使用控件Literal 为Web创建消息提示框]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7179</link>
<author>flyby</author>
<pubDate>2005/7/13 11:09:57</pubDate>
<description><![CDATA[<A>一、</A>添加控件Literal<BR><FONT color=#3300ff>&lt;asp:literal ID = “ErrMsg” runat = “server”/&gt;<BR></FONT><BR>二、编写消息框函数<BR><FONT color=#3300ff>public void showmsg(string Err)<BR>{<BR>string str;<BR><BR>str&nbsp; = "&lt;script language='javascript'&gt;";<BR>str += "alert('"+ Err +"')";<BR>str += "&lt;/script&gt;";<BR><BR>Errmsg.visible = true;<BR>Errmsg.Text = str;<BR>}<BR></FONT><BR>三、调用函数实现功能<BR><FONT color=#3300ff>showmsg("您选择了消息框！");<BR></FONT>]]></description>
</item><item>
<title><![CDATA[用datepart()获得本周的格式数据]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7177</link>
<author>flyby</author>
<pubDate>2005/7/13 10:56:48</pubDate>
<description><![CDATA[select * from table<BR>	where datepart(wk,mydate)=datepart(wk,getdate())<BR>	and datepart(Year,mydate)=datepart(Year,getdate())<BR><BR>	datepart()的参数：yy（年）,qq（季）,mm（月）,dd（日）,wk（第几星期）,dw（星期几）<BR>]]></description>
</item><item>
<title><![CDATA[为Url地址页面制作一个桌面快捷方式]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7176</link>
<author>flyby</author>
<pubDate>2005/7/13 10:37:01</pubDate>
<description><![CDATA[<P>一、打开计事本，编写<BR>[internetshortcut]<BR>url = <A href="http://www.google.com">http://www.google.com</A><BR>二、保存为URL文件</P>
<P>保存为google.url文件，放置在桌面上。就可以点击直接进入google网站了。<BR><BR>三、如果需要编辑，需要在命令行里编辑该文件<BR></P>]]></description>
</item><item>
<title><![CDATA[通过Sql语句优化Web分页功能]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7175</link>
<author>flyby</author>
<pubDate>2005/7/13 10:20:47</pubDate>
<description><![CDATA[<P>web编程常常遇到分页的问题，如何仅读取当前页的数据是一个问题。mysql有一个“From n to m”的语句可以很方便的获得，Mssql就有些困难，下面是我构造出来的类似功能。</P>
<P>&nbsp;</P>
<DIV class=HtmlCode title=点击运行该代码！ style="CURSOR: pointer" onclick="preWin=window.open('','','');preWin.document.open();preWin.document.write(this.innerText);preWin.document.close();" ;>
<P>PageSize：每页记录数；StartIndex：当前几页，从0开始；tmpOrderby：排序</P>
<P>select * from <BR>(select top PageSize * from<BR>(select top PageSize*(StartIndex+1) * from Table<BR>where Condition order by tmpOrderby) tmpTable1<BR>order by tmpOrderby desc) tmpTable2<BR>order by tmpOrderby</P></DIV>]]></description>
</item><item>
<title><![CDATA[格式化Money类型的数据]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7174</link>
<author>flyby</author>
<pubDate>2005/7/13 10:15:22</pubDate>
<description><![CDATA[Money类型的数据精确到小数点4位，<BR>	如果想4舍5入并保留两位小数，可以使用<BR>	SELECT CONVERT(VARCHAR,TMPMONEY,0)<BR>	<BR>	参数说明：<BR>	0（默认值）小数点左侧每三位数字之间不以逗号分隔，<BR>		小数点右侧取两位数，例如 4235.98。 <BR>	1 小数点左侧每三位数字之间以逗号分隔，<BR>		小数点右侧取两位数，例如 3,510.92。 <BR>	2 小数点左侧每三位数字之间不以逗号分隔，<BR>		小数点右侧取四位数，例如 4235.9819<BR>]]></description>
</item><item>
<title><![CDATA[xml：将xml文件或者xml字符串按照xsl格式文件转换为Html代码]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=flyby&amp;id=7172</link>
<author>flyby</author>
<pubDate>2005/7/13 9:43:58</pubDate>
<description><![CDATA[
<P>当前使用xsl格式文件来格式显示xml数据，已经被大多少程序员使用。象msn的“查看消息历史记录”功能就是通过保存聊天的历史数据为xml文件，再通过xsl文件格式显示给用户的。</P>
<P>问题是不同的浏览器及版本，是不支持xsl的格式转换的。所以要求这种转换在服务端执行，转换成Html代码再发送给用户。</P>
<P>有两种可能的情况：一种是转换Xml文件，另一种是转换xml格式的字符串。目前的web服务器都提供了这两种转换，现在以IIS、.net（C＃）为例，看看他们是如何转换的。</P>
<P><FONT color=#3300ff>using System;</FONT></P>
<P><FONT color=#3300ff>using System.IO;<BR>using System.Text;<BR>using System.Xml;<BR>using System.Xml.Xsl;</FONT></P>
<P><FONT color=#3300ff>……</FONT></P>
<P><FONT color=#3300ff>//strXml为xml文件的完整路径，strXsl为Xsl文件的完整路径&nbsp;</FONT></P>
<P><FONT color=#3300ff>public static string TrancXmlStrToHtml(string strXml,string strXsl)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;XslTransform RssXslt = new XslTransform();<BR>&nbsp;&nbsp;&nbsp;XmlDocument RssXml = new XmlDocument();&nbsp;</FONT></P>
<P><FONT color=#3300ff>&nbsp;&nbsp;&nbsp;RssXslt.Load(strXsl);<BR>&nbsp;&nbsp;&nbsp;RssXml.Load(strXml);</FONT></P>
<P><FONT color=#3300ff>&nbsp;&nbsp;&nbsp;StringBuilder t = new StringBuilder();<BR>&nbsp;&nbsp;&nbsp;RssXslt.Transform(RssXml,null,new StringWriter(t),null);&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;return t.ToString();<BR>&nbsp;&nbsp;}</FONT></P>
<P><FONT color=#3300ff>//strXml为xml格式的字符串，strXsl为Xsl文件的完整路径&nbsp;&nbsp;</FONT></P>
<P><FONT color=#3300ff>public static string TrancXmlStrToHtml(string strXml,string strXsl)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;XslTransform RssXslt = new XslTransform();<BR>&nbsp;&nbsp;&nbsp;XmlDocument RssXml = new XmlDocument();&nbsp;</FONT></P>
<P><FONT color=#3300ff>&nbsp;&nbsp;&nbsp;RssXslt.Load(strXsl);<BR>&nbsp;&nbsp;&nbsp;RssXml.LoadXml(strXml);</FONT></P>
<P><FONT color=#3300ff>&nbsp;&nbsp;&nbsp;StringBuilder t = new StringBuilder();<BR>&nbsp;&nbsp;&nbsp;RssXslt.Transform(RssXml,null,new StringWriter(t),null);&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;return t.ToString();<BR>&nbsp;&nbsp;}</FONT></P>]]></description>
</item>
</channel>
</rss>