﻿<?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-在希腊帕尔纳斯山南坡上,有一个驰名世界的戴尔波伊神托所,在它的入口处的巨石上赫然锈刻着这样几个大字: 认识你自己!-随笔分类-JavaScript</title><link>http://www.blogjava.net/9611/category/21784.html</link><description>像丁香花一样静静的等待</description><language>zh-cn</language><lastBuildDate>Fri, 15 Jun 2007 00:11:26 GMT</lastBuildDate><pubDate>Fri, 15 Jun 2007 00:11:26 GMT</pubDate><ttl>60</ttl><item><title>MSXML. xmlhttp 的应用参考</title><link>http://www.blogjava.net/9611/archive/2007/06/14/124300.html</link><dc:creator>dyok</dc:creator><author>dyok</author><pubDate>Thu, 14 Jun 2007 06:00:00 GMT</pubDate><guid>http://www.blogjava.net/9611/archive/2007/06/14/124300.html</guid><wfw:comment>http://www.blogjava.net/9611/comments/124300.html</wfw:comment><comments>http://www.blogjava.net/9611/archive/2007/06/14/124300.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/9611/comments/commentRss/124300.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/9611/services/trackbacks/124300.html</trackback:ping><description><![CDATA[XMLHTTP应用参考 <br>一、使用步骤： <br>1、创建XMLHTTP对象 //需MSXML4.0支持 <br>2、打开与服务端的连接，同时定义指令发送方式，服务网页(URL)和请求权限等。客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样，可以用"GET"方法或"POST"方法指向服务端的服务网页。 <br>3、发送指令。 <br>4、等待并接收服务端返回的处理结果。 <br>5、释放XMLHTTP对象 <br><br>二、XMLHTTP方法： <br>1、XMLHTTP对象 <br>备注：客户机可以使用XMLHTTP对象发送任意的HTTP请求,接受HTTP应答,还可以对应答的XML文档进行解析。 <br><br>Open方法：初始化一个Msxml2.XMLHTTP请求，指定HTTP请求方式、URL以及鉴定信息。 <br>Open（ bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword ） <br>bstrMethod： 数据传送方式，即GET或POST。 <br>bstrUrl： 服务网页的URL。 <br>varAsync： 是否同步执行。缺省为True，即同步执行，但只能在DOM中实施同步执行。用中一般将其置为False，即异步执行。 <br>bstrUser： 用户名，可省略。 <br>bstrPassword：用户口令，可省略。 <br><br>Send方法：发送HTTP请求到服务器，返回应答。 <br>语法： <br>oXMLHttpRequest.send(varBody) <br>说明：此方法是否同步取决于Open方法的varAsync参数。如果设为True则为同步，调用立刻返回，如果设为False调用直到整个应答被接收了才返回。 <br><br>setRequestHeader（ bstrHeader, bstrvalue ） <br>bstrHeader：HTTP 头(header) <br>bstrvalue： HTTP 头(header)的值 <br><br>如果Open方法定义为POST，可以定义表单方式上传： <br>xmlhttp.setRequestHeader（ "Content-Type", "application/x-www-form-urlencoded"） <br><br>三、XMLHTTP属性： <br>onreadystatechange：在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用。 <br>responseBody： 结果返回为无符号整数数组。 <br>responseStream： 结果返回为IStream流。 <br>responseText ： 结果返回为字符串。 <br>responseXML： 结果返回为XML格式数据。 <br><br>四、示例： <br>
<div class="myCode">
<div class="codeText"><img  src="http://mysheji.com/Skin/default/images/code.gif" align="absmiddle" hspace="6">代码片段</div>
<div class="codeContent">&lt;&nbsp;script&nbsp;language="javascript"&nbsp;&gt;&nbsp; <br>function&nbsp;getDatal(url){&nbsp; <br>var&nbsp;xmlhttp&nbsp;
=&nbsp;new&nbsp;ActiveXObject("MSXML2.XMLHTTP.4.0";//创建XMLHTTPRequest对象，需MSXML4.0支
持&nbsp;["MSXML2.XMLHTTP.4.0","MSXML2.DOMDocument.4.0"]&nbsp; <br>xmlhttp.open("GET",url,false,"","";&nbsp;//使用HTTP&nbsp;GET初始化HTTP请求&nbsp; <br>xmlhttp.send("";&nbsp;//发送HTTP请求并获取HTTP响应&nbsp; <br>return&nbsp;xmlhttp.responseXML;&nbsp;//获取XML文档&nbsp; <br>}&nbsp; <br>&lt;&nbsp;/script&nbsp;&gt;&nbsp;</div>
</div>
<p>　　现在网上流行的小偷程序比较多，有新闻类小偷，音乐小偷，下载小偷，那么它们是如何做的呢，下面我来做个简单介绍，希望对各位站长有所帮助。 <br></p>
<p>（一）原理 <br>　　小偷程序实际上是通过了XML中的XMLHTTP组件调用其它网站上的网页。比如新闻小偷程序，很多都是调用了sina的
新闻网页，并且对其中的html进行了一些替换，同时对广告也进行了过滤。用小偷程序的优点有：无须维护网站，因为小偷程序中的数据来自其他网站，它将随
着该网站的更新而更新；可以节省服务器资源，一般小偷程序就几个文件，所有网页内容都是来自其他网站。缺点有：不稳定，如果目标网站出错，程序也会出错，
而且，如果目标网站进行升级维护，那么小偷程序也要进行相应修改；速度，因为是远程调用，速度和在本地服务器上读取数据比起来，肯定要慢一些。 <br></p>
<p>（二）事例 <br><br>下面就XMLHTTP在ASP中的应用做个简单说明 <br><br>代码:&nbsp;</p>
<div class="myCode">
<div class="codeText"><img  src="http://mysheji.com/Skin/default/images/code.gif" align="absmiddle" hspace="6">代码片段</div>
<div class="codeContent">&lt;%&nbsp; <br>&#8217;常用函数&nbsp; <br><br>&#8217;1、输入url目标网页地址，返回值getHTTPPage是目标网页的html代码&nbsp; <br>function&nbsp;getHTTPPage(url)&nbsp; <br>dim&nbsp;Http&nbsp; <br>set&nbsp;Http=server.createobject("MSXML2.XMLHTTP"&nbsp; <br>Http.open&nbsp;"GET",url,false&nbsp; <br>Http.send()&nbsp; <br>if&nbsp;Http.readystate&lt;&gt;4&nbsp;then&nbsp; <br>exit&nbsp;function&nbsp; <br>end&nbsp;if&nbsp; <br>getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312"&nbsp; <br>set&nbsp;http=nothing&nbsp; <br>if&nbsp;err.number&lt;&gt;0&nbsp;then&nbsp;err.Clear&nbsp; <br>end&nbsp;function&nbsp; <br><br>&#8217;2、转换乱玛，直接用xmlhttp调用有中文字符的网页得到的将是乱玛，可以通过adodb.stream组件进行转换&nbsp; <br>Function&nbsp;BytesToBstr(body,Cset)&nbsp; <br>dim&nbsp;objstream&nbsp; <br>set&nbsp;objstream&nbsp;=&nbsp;Server.CreateObject("adodb.stream"&nbsp; <br>objstream.Type&nbsp;=&nbsp;1&nbsp; <br>objstream.Mode&nbsp;=3&nbsp; <br>objstream.Open&nbsp; <br>objstream.Write&nbsp;body&nbsp; <br>objstream.Position&nbsp;=&nbsp;0&nbsp; <br>objstream.Type&nbsp;=&nbsp;2&nbsp; <br>objstream.Charset&nbsp;=&nbsp;Cset&nbsp; <br>BytesToBstr&nbsp;=&nbsp;objstream.ReadText&nbsp; <br>objstream.Close&nbsp; <br>set&nbsp;objstream&nbsp;=&nbsp;nothing&nbsp; <br>End&nbsp;Function&nbsp; <br><br>&#8217;下面试着调用http://www.998w.net/class/的html内容&nbsp; <br>Dim&nbsp;Url,Html&nbsp; <br>Url="http://www.998w.net/class/"&nbsp; <br>Html&nbsp;=&nbsp;getHTTPPage(Url)&nbsp; <br>Response.write&nbsp;Html&nbsp; <br>%&gt;</div>
</div>
<p>&nbsp;------------------------------------------------------ <br>代码: <br>'代码]用XMLHTTP读取远程文件 </p>
<div class="myCode">
<div class="codeText"><img  src="http://mysheji.com/Skin/default/images/code.gif" align="absmiddle" hspace="6">代码片段</div>
<div class="codeContent">&lt;%&nbsp; <br>Response.Buffer&nbsp;=&nbsp;True&nbsp; <br>Dim&nbsp;objXMLHTTP,&nbsp;xml&nbsp; <br>Set&nbsp;xml&nbsp;=&nbsp;Server.CreateObject("Microsoft.XMLHTTP"&nbsp; <br><br>xml.Open&nbsp;"GET",&nbsp;"http://www.998w.net/down/998w1.0.rar",&nbsp;False&nbsp; <br><br>xml.Send&nbsp; <br><br>&#8217;&nbsp;Add&nbsp;a&nbsp;header&nbsp;to&nbsp;give&nbsp;it&nbsp;a&nbsp;file&nbsp;name:&nbsp; <br>Response.AddHeader&nbsp;"Content-Disposition",&nbsp;_&nbsp; <br>"attachment;filename=mitchell-pres.zip"&nbsp; <br><br>&#8217;&nbsp;Specify&nbsp;the&nbsp;content&nbsp;type&nbsp;to&nbsp;tell&nbsp;the&nbsp;browser&nbsp;what&nbsp;to&nbsp;do:&nbsp; <br>Response.ContentType&nbsp;=&nbsp;"application/zip"&nbsp; <br><br>&#8217;&nbsp;Binarywrite&nbsp;the&nbsp;bytes&nbsp;to&nbsp;the&nbsp;browser&nbsp; <br>Response.BinaryWrite&nbsp;xml.responseBody&nbsp; <br><br>Set&nbsp;xml&nbsp;=&nbsp;Nothing&nbsp; <br>%&gt;&nbsp;</div>
</div>
<p>------------------------------------- <br>如何写ASP入库小偷程序 <br>　　入库小偷的原理也很简单：就是用XMLHTTP远程读取网页的内容，然后根据需要，对读到的内容进行加工（过滤，替换，分类），最后得到自己需要的数据，加入到数据库中。 <br>首先：我们先用XMLHTTP读取远程网页（我的另一片文章中有介绍）。 <br>其次：对内容进行过滤，这个是比较关键的步骤，比如说，我要从远程网页上提取出所有url连接，我应该怎么做呢？ <br>代码: <br>&#8216;这里用的是正则式 </p>
<div class="myCode">
<div class="codeText"><img  src="http://mysheji.com/Skin/default/images/code.gif" align="absmiddle" hspace="6">代码片段</div>
<div class="codeContent">Set&nbsp;objRegExp&nbsp;=&nbsp;New&nbsp;Regexp&nbsp;&#8217;建立对象&nbsp; <br>objRegExp.IgnoreCase&nbsp;=&nbsp;True&nbsp;&#8217;大小写忽略&nbsp; <br>objRegExp.Global&nbsp;=&nbsp;True&nbsp;&#8217;全局为真&nbsp; <br>objRegExp.Pattern&nbsp;=&nbsp;"http://.+?"&nbsp;&#8217;匹配字段&nbsp; <br>set&nbsp;mm=objRegExp.Execute(str)&nbsp;&#8217;执行查找，str为输入参数&nbsp; <br>For&nbsp;Each&nbsp;Match&nbsp;in&nbsp;mm&nbsp;&#8217;进入循环&nbsp; <br>Response.write(Match.Value）&nbsp;&#8217;输出url地址&nbsp; <br>next&nbsp;</div>
</div>
<p>然后，我们需要根据需要做一些替换功能，把不必要的数据替换掉，这个比较简单，用Replace函数即可。 <br>最后，进行数据库操作 <br>------------------------------- <br>一个例子 <br>代码: <br></p>
<div class="myCode">
<div class="codeText"><img  src="http://mysheji.com/Skin/default/images/code.gif" align="absmiddle" hspace="6">代码片段</div>
<div class="codeContent">&lt;%&nbsp; <br>On&nbsp;Error&nbsp;Resume&nbsp;Next&nbsp; <br>Server.ScriptTimeOut=9999999&nbsp; <br>Function&nbsp;getHTTPPage(Path)&nbsp; <br>t&nbsp;=&nbsp;GetBody(Path)&nbsp; <br>getHTTPPage=BytesToBstr(t,"GB2312"&nbsp; <br>End&nbsp;function&nbsp; <br><br>&#8217;
首先，进行小偷程序的一些初始化设置，以上代码的作用分别是忽略掉所有非致命性错误，把小偷程序的运行超时时间设置得很长（这样不会出现运行超时的错
误），转换原来默认的UTF-8编码转换成GB2312编码，否则直接用XMLHTTP组件调用有中文字符的网页得到的将是乱码。&nbsp; <br><br>Function&nbsp;GetBody(url)&nbsp; <br>on&nbsp;error&nbsp;resume&nbsp;next&nbsp; <br>Set&nbsp;Retrieval&nbsp;=&nbsp;CreateObject("Microsoft.XMLHTTP"&nbsp; <br>With&nbsp;Retrieval&nbsp; <br>.Open&nbsp;"Get",&nbsp;url,&nbsp;False,&nbsp;"",&nbsp;""&nbsp; <br>.Send&nbsp; <br>GetBody&nbsp;=&nbsp;.ResponseBody&nbsp; <br>End&nbsp;With&nbsp; <br>Set&nbsp;Retrieval&nbsp;=&nbsp;Nothing&nbsp; <br>End&nbsp;Function&nbsp; <br><br>&#8217;然后调用XMLHTTP组件创建一个对象并进行初始化设置。&nbsp; <br><br>Function&nbsp;BytesToBstr(body,Cset)&nbsp; <br>dim&nbsp;objstream&nbsp; <br>set&nbsp;objstream&nbsp;=&nbsp;Server.CreateObject("adodb.stream"&nbsp; <br>objstream.Type&nbsp;=&nbsp;1&nbsp; <br>objstream.Mode&nbsp;=3&nbsp; <br>objstream.Open&nbsp; <br>objstream.Write&nbsp;body&nbsp; <br>objstream.Position&nbsp;=&nbsp;0&nbsp; <br>objstream.Type&nbsp;=&nbsp;2&nbsp; <br>objstream.Charset&nbsp;=&nbsp;Cset&nbsp; <br>BytesToBstr&nbsp;=&nbsp;objstream.ReadText&nbsp; <br>objstream.Close&nbsp; <br>set&nbsp;objstream&nbsp;=&nbsp;nothing&nbsp; <br>End&nbsp;Function&nbsp; <br><br>Function&nbsp;Newstring(wstr,strng)&nbsp; <br>Newstring=Instr(lcase(wstr),lcase(strng))&nbsp; <br>if&nbsp;Newstring&lt;=0&nbsp;then&nbsp;Newstring=Len(wstr)&nbsp; <br>End&nbsp;Function&nbsp; <br><br>&#8217;处理抓取回来的数据需要调用adodb.stream组件并进行初始化设置。%&gt;&nbsp;</div>
</div>
<p>'以下即为页面显示部分 </p>
<div class="myCode">
<div class="codeText"><img  src="http://mysheji.com/Skin/default/images/code.gif" align="absmiddle" hspace="6">代码片段</div>
<div class="codeContent">&lt;%&nbsp; <br>Dim&nbsp;wstr,str,url,start,over,city&nbsp; <br>&#8217;定义一些需要使用到的变量&nbsp; <br><br>city&nbsp;=&nbsp;Request.QueryString("id")&nbsp; <br>&#8217;程序传回的ID变量（即用户选择的城市）赋给id&nbsp; <br><br>url="http://appnews.qq.com/cgi-bin/news_qq_search?city="&amp;city&amp;""&nbsp; <br>&#8217;这里设置需要抓取的页面地址，当然你也可以直接指定某个地址而不使用变量&nbsp; <br><br>wstr=getHTTPPage(url)&nbsp; <br>&#8217;获取指定页面的全部数据&nbsp; <br><br>start=Newstring(wstr,"&nbsp;&lt;html&gt;")&nbsp; <br>&#8217;这里设置需要处理的数据的头部，这个变量应视不同情况而设置，具体内容可以通过查看需要抓取的页面的源代码来确定。因为在这个程序里我们需要抓取整个页面,所以设置为页面全部抓取。注意，设置的内容必须是页面内容唯一的，不可以重复。&nbsp; <br><br>over=Newstring(wstr,"&nbsp;&lt;/HTML&gt;")&nbsp; <br>&#8217;和start相对应的就是需要处理的数据的尾部，同样的，设置的内容必须是页面中唯一的。&nbsp; <br><br>body=mid(wstr,start,over-start)&nbsp; <br>&#8217;设置显示页面的范围&nbsp; <br><br>&#8217;下面就是动用乾坤挪移大法的时候了，通过replace可以用一些字符替换掉数据中指定的字符。&nbsp; <br><br>body&nbsp;=&nbsp;replace(body,"skin1","天气预报&nbsp;-&nbsp;斯克网络")&nbsp; <br>body&nbsp;=&nbsp;replace(body,"http://appnews.qq.com/cgi-bin/news_qq_search?city","tianqi.asp?id")&nbsp; <br><br>&#8217;本程序中已经完成了替换的工作，如果有其他需要的话可以继续进行类似的替换操作。&nbsp; <br><br>response.write&nbsp;body&nbsp; <br>%&gt;</div>
</div><img src ="http://www.blogjava.net/9611/aggbug/124300.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/9611/" target="_blank">dyok</a> 2007-06-14 14:00 <a href="http://www.blogjava.net/9611/archive/2007/06/14/124300.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>怀念从前之-----ASP开发技巧集锦四</title><link>http://www.blogjava.net/9611/archive/2007/04/20/112104.html</link><dc:creator>dyok</dc:creator><author>dyok</author><pubDate>Fri, 20 Apr 2007 00:51:00 GMT</pubDate><guid>http://www.blogjava.net/9611/archive/2007/04/20/112104.html</guid><wfw:comment>http://www.blogjava.net/9611/comments/112104.html</wfw:comment><comments>http://www.blogjava.net/9611/archive/2007/04/20/112104.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/9611/comments/commentRss/112104.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/9611/services/trackbacks/112104.html</trackback:ping><description><![CDATA[31. 确认操作<br>function ConfirmDel()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(confirm("确定要删除吗？一旦删除将不能恢复！"))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br>}<br><br>&lt;form name="del" method="Post" action="Del.asp" onsubmit="return ConfirmDel();"&gt;<br><br>==============================================================<br><br><br><br>我自己用的一个。<br>function ConfirmReset()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(confirm("确定取消操作吗？一旦取消操作将不能恢复！"))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.form1.reset();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // return true;<br>}<br>&lt;a href="javascript:ConfirmReset();"&gt;&lt;img src="button_cance.gif"&gt;&lt;/a&gt;<br><br><br><br>32. indexOf() 用法<br><br><br><br>&lt;字符串对象&gt;.indexOf(&lt;另一个字符串对象&gt;[, &lt;起始位置&gt;])；<br><br><br><br>该方法从&lt;字符串对象&gt;中查找&lt;另一个字符串对象&gt;（如果给出&lt;起始位置&gt;就忽略之前的位置），如果找到了，就返回它的位置，没有找到就返回&#8220;-1&#8221;。所有的&#8220;位置&#8221;都是从零开始的。<br>eg. Str.indexOf(&#8220;AP&#8221;)&gt;-1 说明str中存在&#8221;AP&#8221;字符串<br><br><br><br>33. 生成流水号<br><br><br><br>&lt;%<br>if request.form("Modf") &lt;&gt; "" then<br>Dim&nbsp;&nbsp; rs<br>Dim sql<br>Dim BugID<br>dim today<br>today=date()<br>toyear=year(today)<br>toyear=toyear*10000<br>tomonth= month(today)<br>tomonth=tomonth*100<br>tonow=day(today)<br>Serialnum = toyear + tomonth + tonow<br>Serialnum = Serialnum*10000+1<br><br><br><br>set rs = Server.CreateObject("ADODB.recordset")<br>sql = "select top 1 * from buglist order by SubmitDate desc"<br>rs.open sql,conn,1,3<br>if&nbsp;&nbsp; not rs.eof then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim OldSerialnum<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OldSerialnum = Rs("BugID")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OldSerialnum = right(OldSerialnum,12)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Serial = right(Serialnum,12)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if OldSerialnum - Serial &gt;= 0 then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Serialnum = OldSerialnum + 1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end if <br>end if<br>BugID = "ES"&amp;request("ProductVersion")&amp;Serialnum<br><br><br><br>34. 响应回车<br><br><br><br>function getdata(what,whatid)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp; if (event.keyCode==13)<br>&nbsp;&nbsp;&nbsp;&nbsp; &#8230;&#8230;<br>&lt;input name="SerialNum&lt;%=i%&gt;"&nbsp;&nbsp;&nbsp; type="text" onKeyDown="getdata(window.form1.SerialNum&lt;%=i%&gt;.value,&lt;%=i%&gt;)"&gt;<br><br><br><br>35. 关闭窗口前刷新父页面<br><br><br><br>response.write "&lt;script language = javascript&gt;"<br>response.write "javascript:opener.location.reload(); "<br>response.write "javasript:window.close();&lt;/script&gt;"<br><br><br><br>36. JS事件<br><br><br><br>事件 / 描述<br><br><br><br>onblur 事件 发生在窗口失去焦点的时候。<br>onchange 事件 发生在文本输入区的内容被更改，然后焦点从文本输入区移走之后。<br>onclick 事件 发生在对象被单击的时候。<br>onerror 事件 发生在错误发生的时候。<br>onfocus 事件 发生在窗口得到焦点的时候。<br>onload 事件 发生在文档全部下载完毕的时候。<br>onmousedown 事件 发生在用户把鼠标放在对象上按下鼠标键的时候。参考 onmouseup 事件。<br>onmouseout 事件 发生在鼠标离开对象的时候。参考 onmouseover 事件。<br>onmouseover 事件 发生在鼠标进入对象范围的时候。<br>onmouseup 事件 发生在用户把鼠标放在对象上鼠标键被按下的情况下，放开鼠标键的时候。<br>onreset 事件 发生在表单的&#8220;重置&#8221;按钮被单击（按下并放开）的时候。<br>onresize 事件 发生在窗口被调整大小的时候。<br>onsubmit 事件 发生在表单的&#8220;提交&#8221;按钮被单击（按下并放开）的时候。<br>onunload 事件 发生在用户退出文档（或者关闭窗口，或者到另一个页面去）的时候。<br>onSelect 当Text或Textarea对象中的文字被加亮后，引发该事件。 <br>onFocus 当用户单击Text或textarea以及select对象时，产生该事件。 <br>onBlur 当text对象或textarea对象以及select对象不再拥有焦点、而退到后台时，引发该文件. <br>onDragDrog 拖放时发生<br>onLoseCapture&nbsp;&nbsp;<br>onDblClick 鼠标双击事件 <br>onKeyPress 当键盘上的某个键被按下并且释放时触发的事件.[注意:页面内必须有被聚焦的对象] <br>onKeyDown 当键盘上某个按键被按下时触发的事件[注意:页面内必须有被聚焦的对象] <br>onKeyUp 当键盘上某个按键被按放开时触发的事件[注意:页面内必须有被聚焦的对象] <br>onAbort 图片在下载时被用户中断 <br>onBeforeUnload 当前页面的内容将要被改变时触发的事件 <br>onMove 浏览器的窗口被移动时触发的事件<br><br><br><br>37. 自动最大化<br><br><br><br>function window_onload()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.moveTo(-2,-2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.resizeTo(screen.availWidth, screen.availHeight);<br>}<br><br><br><br>&lt;body onload="window_onload()"&gt;<br><br><br><br>38. 几个SQL技巧<br><br><br><br>Select Area,Territory,username,sum(dealqty) DealQty,count(Projectnum) ProjectQty,sum(TotalAmount) TotalAmountQty,sum(TotalPowerRT) TotalPowerRT&nbsp;&nbsp; FROM VW_PreviewTerritory&nbsp;&nbsp; where&nbsp;&nbsp;&nbsp; username = '段龙义' group by area,Territory,username<br>只要把不需要统计的东西分组就可以了。<br><br><br><br>select area,count(projectnum) TotalProjectQty,sum(DealQty) TotalDealQty,sum(TotalAmount) TotalAmountQty,sum(TotalPowerRT) TotalPowerRTQty from vw_previewProject where username = 'admin' group by area<br>这个也是一样，记住：count() 只是计数，不管这个字段值是多少。sum()是求和，把所有加在一起。<br><br><br><br>39. Eval用法<br><br><br><br>eval("ProducingArea"+i+".style.display = 'none' ;");<br>单引号不影响<br>eval("if((window.form1.ProductBaseType"+i+".value!='' &amp;&amp; window.form1.ProductBaseType"+(i+1)+".value =='')==true);");<br>//错误！<br>if(eval("window.form1.ProductBaseType"+i+".value!='' &amp;&amp; window.form1.ProductBaseType"+(i+1)+".value ==''")==true)<br>//以后记得凡是有if判断的，把eval("")写在里面，就比较好！<br>if(confirm(eval("'确信要在'+window.form1.ProductBaseType"+(i)+".value+'后添加子类？'")))<br><br><br><br><br><br><br><br>40. 窗口关闭之前<br><br>function window_onbeforeunload(Projectnum)<br>{<br>&nbsp;&nbsp;&nbsp; if (event.clientX &gt; document.body.clientWidth &amp;&amp; event.clientY &lt; 0 )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var oXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oXMLHTTP.open("POST","CheckProjectDeal.asp?Projectnum="+Projectnum,false);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oXMLHTTP.send();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Str=unescape(oXMLHTTP.responseText);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (unescape(oXMLHTTP.responseText)!="YES")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.event.returnValue="项目至少需要一个销售机会！";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>}<br><br>41. 标准表格<br><br>***************<br><br>* 这个是标题<br><br>***************<br><br>&lt;table cellspacing=0 cellpadding=0 width="100%" border=0&gt;<br><br>&nbsp;&nbsp; &lt;tr&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&nbsp;&nbsp; class=title&nbsp;&nbsp; nowrap&nbsp;&nbsp; align=left&gt;<br>&lt;%response.write Application("LProductManage"&amp;session("LanguageId"))%&gt; <br><br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br><br>&nbsp;&nbsp; &lt;/tr&gt;<br><br>&lt;/table&gt;<br><br>***************<br><br>* 这个是横线<br><br>***************<br><br>&lt;table cellspacing=0 cellpadding=0 width="100%" border=0&gt;<br><br>&nbsp;&nbsp; &lt;tbody&gt; <br><br>&nbsp;&nbsp; &lt;tr&gt; <br><br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt; <br><br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br><br>&nbsp;&nbsp; &lt;/tr&gt;<br>&lt;tr class="linecolor"&gt;<br><br>&lt;td height="2"&gt;&lt;/td&gt;<br><br>&lt;/tr&gt; <br>&lt;tr&gt;<br><br>&lt;td class="tdcolor" align=left height=15&gt; &lt;/td&gt;<br><br>&lt;/tr&gt;<br><br>&nbsp;&nbsp; &lt;/tbody&gt;<br><br>&lt;/table&gt;<br><br><br>***************<br><br>* 这个是表格<br><br>***************<br><br>&lt;table border=0 cellpadding=0 cellspacing=1 width=100% bgcolor="#d0d090"&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;tbody&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th align="middle" class=light2&gt;&lt;b&gt;&lt;%=application("Lstatus"&amp;session("languageid"))%&gt;&lt;/b&gt;&lt;/th&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th align="middle" class=light2&gt;&lt;b&gt;&lt;%=application("LSaleStage"&amp;session("languageid"))%&gt;&lt;/b&gt;&lt;/th&gt;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr bgColor="white"&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="middle"&gt; &lt;/td&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="middle"&gt; &lt;/td&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br><br><br>&nbsp;&nbsp; &lt;/tbody&gt;<br><br>&lt;/table&gt;<br><br>边框\填充 = 0<br><br>间隔 ＝ 1<br><br>底色 = #d0d090<br><br>42. 这也行<br><br>for i=2 to num<br><br>&nbsp;&nbsp; BaseTypeAllPArr = request("BaseType"&amp;i&amp;"P"&amp;jLoop)&amp;":"&amp;BaseTypeAllPArr<br><br>&nbsp;&nbsp; response.Write "&nbsp;&nbsp; OOOO&nbsp;&nbsp; "&amp;request("BaseType"&amp;i&amp;"P"&amp;jLoop)&amp;"&nbsp;&nbsp; OOOO&nbsp;&nbsp;&nbsp; &lt;br&gt;"<br>next <br><br>43. 标准注释头<br><br>'' ******************************************************************<br><br>'' 文件名:<br><br>'' Copyright (c) 2001-2005 &#215;&#215;信息技术公司软件部<br><br>'' 功能描述:产品编辑<br><br>'' 参数<br><br>'' 牵涉数据表，视图，存储过程：自定义函数dbo.GetSubTreeinfo<br><br>'' 包含的文件:<br><br>'' 调用的公用函数，类，方法<br><br>'' 创建人:Kokey YU <br><br>'' 日　期: 2005-8-9<br><br>'' 修改人:<br><br>'' 日　期:<br><br>'' 修改说明:<br><br>'' 版　本:<br><br>'' ******************************************************************/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br>44. title换行<br><br>&lt;a href="javascript:;" title="这是一行这是另一行！"&gt;把鼠标放上来&lt;/a&gt;<br>
<img src ="http://www.blogjava.net/9611/aggbug/112104.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/9611/" target="_blank">dyok</a> 2007-04-20 08:51 <a href="http://www.blogjava.net/9611/archive/2007/04/20/112104.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>怀念从前之-----ASP开发技巧集锦三</title><link>http://www.blogjava.net/9611/archive/2007/04/20/112103.html</link><dc:creator>dyok</dc:creator><author>dyok</author><pubDate>Fri, 20 Apr 2007 00:50:00 GMT</pubDate><guid>http://www.blogjava.net/9611/archive/2007/04/20/112103.html</guid><wfw:comment>http://www.blogjava.net/9611/comments/112103.html</wfw:comment><comments>http://www.blogjava.net/9611/archive/2007/04/20/112103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/9611/comments/commentRss/112103.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/9611/services/trackbacks/112103.html</trackback:ping><description><![CDATA[&lt;iframe class="TBGen" style="top:2px" ID="UploadFiles" src="upload.asp" frameborder=0 scrolling=no width="250" height="25"&gt;&lt;/iframe&gt;<br><br>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br>其实也可以用&lt;!--#include file="fuck.asp"--&gt;<br><br><br><br>22. 全部选定<br><br><br><br>&lt;SCRIPT language=javascript&gt;<br>function CheckAll(form)<br>&nbsp;&nbsp; {<br>&nbsp;&nbsp; for (var i=0;i&lt;form.elements.length;i++)<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; var e = form.elements[i];<br>&nbsp;&nbsp;&nbsp;&nbsp; if (e.Name != "chkAll")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.checked = form.chkAll.checked;<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp; }<br>&lt;/script&gt;<br>引用：<br>&lt;td width="250" height="30"&gt;&lt;input name="chkAll" type="checkbox" id="chkAll" onclick=CheckAll(this.form) value="checkbox"&gt;选中本页显示的所有&lt;/td&gt;<br><br><br><br>小格：<br>&lt;input name='username' type='checkbox'&nbsp;&nbsp; id="username" value="&lt;%=cstr(rsView("username"))%&gt;"&gt;<br><br><br><br>23. 如何处理页面执行时发生的错误？<br><br><br><br>&lt;%@ LANGUAGE="VBScript" %&gt;<br>&lt;% <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Buffer = True ' 打开页面缓冲<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On Error Resume Next&nbsp;&nbsp; ' 打开错误处理<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8230;&#8230;&#8230;&#8230;' ASP代码<br>%&gt; <br><br><br><br>&lt;% <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Err.Number &lt;&gt; 0 Then&nbsp;&nbsp; ' 错误处理<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Clear&nbsp;&nbsp; ' 清除缓冲区<br>%&gt;<br><br><br><br>&lt;HTML&gt;' 显示错误信息页面<br>&lt;HEAD&gt;<br>&lt;TITLE&gt;页面错误报告&lt;/TITLE&gt;<br>&lt;/HEAD&gt;<br><br><br><br>&lt;BODY BGCOLOR="#C0C0C0"&gt;<br>&lt;font color=red&gt;<br>&lt;p&gt;页面错误报告&lt;/p&gt;<br><br><br><br>错误号:&lt;%= Err.Number %&gt;&lt;BR&gt;<br>错误描述:&lt;%= Err.Description %&gt;&lt;BR&gt; <br>错误源:Source &lt;%= Err.Source %&gt;&lt;BR&gt;<br>错误发生行:&lt;%= Err.Line %&gt;&lt;BR&gt;<br>&lt;/BODY&gt;<br>&lt;/HTML&gt;<br>&lt;% <br>End If<br>%&gt;<br><br><br><br>24. 收藏夹图标.<br><br><br><br>在 HEAD 部分加入下面的内容:&nbsp;&nbsp;<br>&lt;LINK REL="SHORTCUT ICON" HREF=http://www.alleasy.com.cn/alleasy.ico&gt; <br><br><br><br>在地址栏加入图标（图标必须是.ico格式，并且要加入收藏后才有效）<br>在HEAD里加入 &lt;link rel="shortcut icon" href="favicon.ico"&gt; <br><br><br><br>25. 校验提交表单（正则表达式应用）<br><br><br><br>&lt;script language="JavaScript"&gt;<br>&lt;!--<br>function CheckForm()<br>{ <br>if (LoginID.value =="")<br>{<br>alert("请填写您的登录名！");<br>LoginID.focus();<br>return false;<br>}<br>var filter=/^\s*[.A-Za-z0-9_-]{5,15}\s*$/;<br>if (!filter.test(LoginID.value)) { <br>alert("用户名填写不正确,请重新填写！可使用的字符为（A-Z a-z 0-9 _ - .)长度不小于5个字符，不超过15个字符，注意不要使用空格。"); <br>LoginID.focus();<br>LoginID.select();<br>return false; <br>} <br>if (Password.value =="") <br>{<br>alert("请填写您的密码！");<br>Password.focus();<br>return false; <br>}<br>var filter=/^\s*[.A-Za-z0-9_-]{5,15}\s*$/;<br>if (!filter.test(Password.value)) { <br>alert("密码填写不正确,请重新填写！可使用的字符为（A-Z a-z 0-9 _ - .)长度不小于5个字符，不超<br><br><br><br>过15个字符，注意不要使用空格。"); <br>Password.focus();<br>Password.select();<br>return false; <br>} <br>if (Password.value != ConfirmPassword.value) <br>{<br>alert("请两次填写的密码不一致，请重新填写！");<br>ConfirmPassword.focus();<br>return false; <br>}<br>if (CompanyName.value =="")<br>{<br>alert("请填写贵公司名称！");<br>CompanyName.focus();<br>return false;<br>}<br>var filter=/^[a-zA-Z][a-zA-Z0-9._-]*@([a-zA-Z0-9-_]+\.)+(com|gov|net|com\.cn|edu\.cn)$/;<br>if(!filter.test(document.myform.Email.value)){<br>alert("邮箱格式不正确!"); <br>document.myform.Email.focus();<br>return false;<br>}<br>myform.submit();<br>return true;<br>}<br>//--&gt;<br>&lt;/SCRIPT&gt;<br><br><br><br>统一一下，以后都这样写<br>&lt;form method="POST" name="myform"&nbsp;&nbsp; action="Checkreg.asp" &gt;<br>&lt;/form&gt;<br><br><br><br>&lt;input type="button" name="Submit" value="提交" onClick="CheckForm();"&gt;<br><br><br><br>26. 循环<br><br><br><br>&lt;%<br>dim sql,rs<br>set rs=server.createobject("ADODB.recordset")<br>sql="select * from news where bigclassname='解决方案'"<br>rs.open sql,conn,1,3<br>for k=1 to rs.recordcount<br>if rs.eof then<br>exit for<br>else<br>%&gt;<br><br><br><br>&lt;tr&gt;<br>&lt;td&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asfasdf<br>&lt;/td&gt;<br>&lt;/tr&gt;<br><br><br><br>&lt;% <br>rs.movenext<br>end if<br>next<br>%&gt;<br><br><br><br>27. 另一个只能输入数字代码<br><br><br><br>&lt;script language=java script&gt;<br>function check(){<br>&nbsp;&nbsp;&nbsp; if(isNaN(tt.value))<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("必须是数字!");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tt.value="";<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&lt;/script&gt;<br><br><br><br>&lt;input type="text" name="tt" onkeyup="check();"&gt;<br><br><br><br>28. 有选择显示<br><br><br><br>function showco(va)<br>{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (va=="CO")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RefNum.style.display=''; //不再用这个可以直接用 block<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buttonsp.style.display='none';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (va=="SP")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buttonco.style.display='none';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buttonsp.style.display='';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kokey.style.display='';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (va=="Inventory")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RefNum.style.display='none'; //不显示<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Reftr.style.display="block"; //显示<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br><br><br>调用：<br><br><br><br>&lt;select name="RefType" style='width:77pt'&nbsp;&nbsp; onChange="showco(this.value)"&gt;<br><br><br><br>&nbsp;&nbsp;&nbsp; &lt;option value="Inventory"&gt;Inventory&lt;/option&gt;<br><br><br><br>&nbsp;&nbsp;&nbsp; &lt;option value="CO" &gt;CO&lt;/option&gt;<br><br><br><br>&nbsp;&nbsp;&nbsp; &lt;option&nbsp;&nbsp; value="SP"&gt;SP&lt;/option&gt;<br><br><br><br>&lt;/select&gt;<br><br><br><br>选择显示行 &lt;tr id="Reftr" name="Reftr" style="display:none"&gt;也可以用&lt;div id=&#8221;Resftr&#8221; &gt;&lt;/div&gt; <br><br><br><br>29. 调试参数显示规范<br><br><br><br>Response.Write session("LoginCompanyId")&amp;","&amp;Date&amp;","&amp;Request.Form("Owner")&amp;","&amp;Request.Form("Name")&amp;<br>//注意最后没有"只是在，之间用","&nbsp;&nbsp;&nbsp; 其他用&amp;&amp;引用即可<br>//也就是说只是用&nbsp;&nbsp; &amp;","&amp;&nbsp;&nbsp; 中间加一个逗号，其他的该怎么写，就怎么写<br>Response.End<br><br><br><br>30. 从数据库填充下拉菜单<br><br><br><br>&lt;%<br>sql = "select * from BigClass"<br>rs.open sql,conn,1,1<br>%&gt;<br><br><br><br>&lt;select name="BigClassName" size="1"&gt;<br>&lt;option selected value="&lt;%=trim(rs("BigClassName"))%&gt;"&gt;&lt;%=trim(rs("BigClassName"))%&gt;&lt;/option&gt;<br><br><br><br>&lt;%<br>rs.movenext //不能少，否则重复<br>do while not rs.eof<br>%&gt;<br><br><br><br>&lt;option value="&lt;%=trim(rs("BigClassName"))%&gt;"&gt;&lt;%=trim(rs("BigClassName"))%&gt;&lt;/option&gt;<br>&lt;%<br>rs.movenext<br>loop<br>rs.close<br>%&gt;<br>&lt;/select&gt; <br><br>//以下是新方法<br>&lt;select name="SrcNo"&gt;<br>&lt;%do while not SrcRs.eof%&gt;<br>&lt;option value="&lt;%=trim(SrcRs("Cost"))%&gt;" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;% <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if Trim(SrcComRs("SrcNo")) = Trim(SrcRs("Cost")) then <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.Write "selected" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end if<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&lt;%=trim(SrcRs("Cost"))%&gt;<br>&lt;/option&gt;<br>&lt;%<br>&nbsp;&nbsp;&nbsp; SrcRs.movenext<br>&nbsp;&nbsp;&nbsp;&nbsp; loop<br>&nbsp;&nbsp;&nbsp;&nbsp; SrcRs.close<br>%&gt;<br>&lt;/select&gt; <br>
<img src ="http://www.blogjava.net/9611/aggbug/112103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/9611/" target="_blank">dyok</a> 2007-04-20 08:50 <a href="http://www.blogjava.net/9611/archive/2007/04/20/112103.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>怀念从前之----ASP开发技巧集锦二</title><link>http://www.blogjava.net/9611/archive/2007/04/20/112102.html</link><dc:creator>dyok</dc:creator><author>dyok</author><pubDate>Fri, 20 Apr 2007 00:49:00 GMT</pubDate><guid>http://www.blogjava.net/9611/archive/2007/04/20/112102.html</guid><wfw:comment>http://www.blogjava.net/9611/comments/112102.html</wfw:comment><comments>http://www.blogjava.net/9611/archive/2007/04/20/112102.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/9611/comments/commentRss/112102.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/9611/services/trackbacks/112102.html</trackback:ping><description><![CDATA[11. 报错并返回<br>if rs.bof and rs.eof then&nbsp;&nbsp; &#8216;还是有问题<br>response.write"&lt;SCRIPT language=JavaScript&gt;alert('找不到！');"<br>response.write"javascript:history.go(-1)&lt;/SCRIPT&gt;"<br>end if<br>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br>这个是跳转。<br>&lt;script language="javascript"&gt;<br>alert('&lt;%=intOperationInfo%&gt;');<br>window.navigate('ChangePwd.asp');<br>&lt;/Script&gt;<br>12. 从VBS到JS，混用<br>&nbsp;&nbsp;&nbsp; &lt;%<br>&nbsp;&nbsp;&nbsp; dim checkpwdconfig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; checkpwdconfig=split(addation,"/")<br>&nbsp;&nbsp;&nbsp; %&gt;<br>&nbsp;&nbsp;&nbsp; &lt;script language="javascript"&gt;<br>&nbsp;&nbsp;&nbsp; alert("&lt;%=checkpwdconfig(0)%&gt;")<br>&nbsp;&nbsp;&nbsp; &lt;/script&gt; <br>13. 弹出窗口<br>&lt;script language=javascript&gt;<br>function openaddnew()<br>{<br>subWindow=window.open("../Edit/PasswordConfigEdit.asp?method=new",'','scrollbars=yes,left=120,top=60,height=250,width=500,menubar=no,location=no,toolbar=no,resizable=yes','')<br>subWindow.opener = this;<br>}<br>&lt;/script&gt;<br>用一个连接调用：<br>&lt;a href=""＃""&gt;请修改密码 onClick="openaddnew()"&lt;/a&gt;<br>图片调用：<br>&lt;img name=submit1 src="../button_new&lt;%=session("languageid")%&gt;.gif"&nbsp;&nbsp; onClick="openaddnew()"&gt;<br>14. 分页<br>&lt;!--#include file="conn.asp"--&gt;<br>&lt;%<br>if request("pageno")&lt;&gt;"" then<br>&nbsp;&nbsp;&nbsp;&nbsp; pageno=int(request("pageno"))<br>else<br>pageno=1<br>end if<br>sql="select * from news where [language]='中文' and bigclassname='新闻' order by id desc"<br>Set rs= Server.CreateObject("ADODB.Recordset")<br>rs.open sql,conn,1,3<br>rs.pagesize=20<br>if rs.eof then<br>pageno=0<br>else <br>rs.absolutepage=pageno<br>end if<br>%&gt;<br>==========================================<br>共&lt;%=rs.recordcount%&gt;条,&lt;%=pageno%&gt;/&lt;%=int(rs.pagecount)%&gt;页,每页&lt;%=rs.pagesize%&gt;条<br>&nbsp;&nbsp; &lt;a href="manage.asp?pageno=1"&gt;首页&lt;/a&gt;<br>&nbsp;&nbsp; &lt;%if pageno&gt;1 then%&gt;<br>&nbsp;&nbsp; &lt;a href="manage.asp?pageno=&lt;%=int(pageno)-1%&gt;"&gt;上一页&lt;/a&gt;<br>&nbsp;&nbsp; &lt;%<br>&nbsp;&nbsp; end if<br>&nbsp;&nbsp; if int(pageno)&lt;&gt;int(rs.pagecount)then<br>%&gt;<br>&nbsp;&nbsp; &lt;a href="manage.asp?pageno=&lt;%=int(pageno+1)%&gt;"&gt;下一页&lt;/a&gt;<br>&nbsp;&nbsp; &lt;%end if%&gt;<br>&nbsp;&nbsp; &lt;a href="manage.asp?pageno=&lt;%=int(rs.pagecount)%&gt;"&gt;尾页&lt;/a&gt;<br>&nbsp;&nbsp; &lt;%rs.close%&gt;<br>&nbsp;&nbsp; &lt;%<br>call CloseConn()<br>%&gt;<br>15. 数据库更新<br>&nbsp;&nbsp; sql="select * from [user] where username='"&amp;request("username")&amp;"'"<br>&nbsp;&nbsp; rs.Open sql,Conn,1,3<br>&nbsp;&nbsp; rs("usermail")=Request("usermail")<br>&nbsp;&nbsp; rs("userhome")=Request("userhome"))<br>&nbsp;&nbsp; rs.update<br>&nbsp;&nbsp; rs.close<br>16. 关闭独立窗口<br>&lt;head&gt;<br>&lt;OBJECT id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff- 11cf-9377-00aa003b7a11"&gt;&lt;param name="Command" value="Close"&gt;<br>&lt;/object&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;input type="button" value="点击我关闭窗口" onclick="closes.Click();"&gt;<br>&lt;/body&gt;<br>17. 极细表格<br>&lt;table border="1" cellpadding="0" cellspacing="0" width="32" height="32" bordercolorlight="#000000" bordercolordark="#FFFFFF"&gt;<br>&lt;tr&gt;<br>&lt;td&gt;　&lt;/td&gt; <br>&lt;/tr&gt; <br>&lt;/table&gt; <br>18. 几个正则表达式<br>Require : /.+/,&nbsp;&nbsp;&nbsp;&nbsp;<br>Email : /^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/,&nbsp;&nbsp;&nbsp;&nbsp;<br>Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,&nbsp;&nbsp;&nbsp;&nbsp;<br>Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/,&nbsp;&nbsp;&nbsp;&nbsp;<br>Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&amp;_~`@[\]\':+!]*([^&lt;&gt;\"\"])*$/,&nbsp;&nbsp;&nbsp;&nbsp;<br>IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/,&nbsp;&nbsp;&nbsp;&nbsp;<br>Currency : /^\d+(\.\d+)?$/, <br>Number : /^\d+$/,&nbsp;&nbsp;&nbsp;&nbsp;<br>Zip : /^[1-9]\d{5}$/,&nbsp;&nbsp;&nbsp;&nbsp;<br>QQ : /^[1-9]\d{4,8}$/,&nbsp;&nbsp;&nbsp;&nbsp;<br>Integer : /^[-\+]?\d+$/,&nbsp;&nbsp;&nbsp;&nbsp;<br>Double : /^[-\+]?\d+(\.\d+)?$/,&nbsp;&nbsp;&nbsp;&nbsp;<br>English : /^[A-Za-z]+$/,&nbsp;&nbsp;&nbsp;&nbsp;<br>Chinese :&nbsp;&nbsp; /^[\u0391-\uFFE5]+$/,&nbsp;&nbsp;&nbsp;&nbsp;<br>UnSafe :/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&amp;\*\.\(\)\[\]\{\}&lt;&gt;\?\\\/\'\"]*)|.{0,5})$|\s/,<br>19. Left应用（控制字数）<br>function title(str) <br>if len(trim(str))&gt;=28 then <br>title=left(trim(str),27)&amp;"..." <br>else <br>title=trim(str) <br>end if <br>end function <br>20. 判断浏览器<br>&lt;SCRIPT LANGUAGE="javascript1.2"&gt; <br>&lt;!--// <br>if (navigator.appName == 'Netscape') <br>var language = navigator.language; <br>else <br>var language = navigator.browserLanguage; <br>if (language.indexOf('en') &gt; -1) document.location.href = 'en/index.asp'; <br>else if (language.indexOf('zh') &gt; -1) document.location.href = 'cn/index.asp'; <br>else <br>document.location.href = 'cn/index.asp'; <br>// End --&gt; <br>&lt;/script&gt; <br>
<img src ="http://www.blogjava.net/9611/aggbug/112102.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/9611/" target="_blank">dyok</a> 2007-04-20 08:49 <a href="http://www.blogjava.net/9611/archive/2007/04/20/112102.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>怀念从前之-------ASP开发技巧集锦一</title><link>http://www.blogjava.net/9611/archive/2007/04/20/112101.html</link><dc:creator>dyok</dc:creator><author>dyok</author><pubDate>Fri, 20 Apr 2007 00:48:00 GMT</pubDate><guid>http://www.blogjava.net/9611/archive/2007/04/20/112101.html</guid><wfw:comment>http://www.blogjava.net/9611/comments/112101.html</wfw:comment><comments>http://www.blogjava.net/9611/archive/2007/04/20/112101.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/9611/comments/commentRss/112101.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/9611/services/trackbacks/112101.html</trackback:ping><description><![CDATA[<p>1. 几个常用函数 <br>Round(pi, 2) 四舍五入 <br><br>FormatNumber(k,4) ' 把 k 格式化为带四位小数点的数。 <br>eg. 如果k =20000则显示为20,000.00；如果把formatnumber(k,0)则为20,000 <br><br>Replace(expression,find,replacewith) '返回一字符串，其中指定的子串已被另一个子串替换 <br><br>Left(String,Length) '返回指定数目的从字符串的左边算起的字符串。 <br><br>Split(expression[, delimiter[, count[, start]]]) '返回基于 0 的一维数组，其中包含指定数目的子字符串。 <br>eg. 常用这个 Split(String,[delimiter]) ' 用delimiter(用于标识子字符串界限的字符)来划分字符串 <br><br>Instr(String1,String2) '返回某字符串在另一字符串中第一次出现的位置 <br>eg1. if instr(addation,"密码配置表")&lt;&gt;0 then '说明存在 <br>eg2. if instr(str,&#8221;AP&#8221;) &gt;0 不好区分str = (AP,AP&amp;AC),此时只要变为（&#8217;AP&#8217;,&#8217;AP&amp;AC&#8217;）,再用instr(str,&#8221;&#8217;AP&#8217;&#8221;) <br>2. 弹出窗口Pick值 <br><br>function pickupSP(spdisid,pjnum,pdcode) <br>{ <br>window.opener.&lt;%=theForm%&gt;.RefNum&lt;%=Spid%&gt;.value=spdisid; <br>window.opener.&lt;%=theForm%&gt;.LineS&lt;%=Spid%&gt;.value=pjnum; <br>window.opener.&lt;%=theForm%&gt;.kokey&lt;%=Spid%&gt;.value=pdcode; <br>window.close(); <br>} <br>3. ASP控制图片显示的大小（等比例缩放） <br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt; New Document &lt;/TITLE&gt; <br>&lt;script language="JavaScript"&gt; <br>&lt;!-- <br>var flag=false; <br>function DrawImage(ImgD){ <br>var image=new Image(); <br>image.src=ImgD.src; <br>if(image.width&gt;0 &amp;&amp; image.height&gt;0){ <br>flag=true; <br>if(image.width/image.height&gt;= 164/112){ <br>if(image.width&gt;164){ <br>ImgD.width=164; <br>ImgD.height=(image.height*164)/image.width; <br>}else{ <br>ImgD.width=image.width; <br>ImgD.height=image.height; <br>} <br>ImgD.alt=image.width+"x"+image.height; <br>} <br>else{ <br>if(image.height&gt;112){ <br>ImgD.height=112; <br>ImgD.width=(image.width*112)/image.height; <br>}else{ <br>ImgD.width=image.width; <br>ImgD.height=image.height; <br>} <br>ImgD.alt=image.width+"x"+image.height; <br>} <br>} <br>} <br>//--&gt; <br>&lt;/script&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;a href="./img.jpg" target="_blank"&gt;&lt;img src="./img.jpg" border="0" width="164" height="112" onload="javascript:DrawImage(this);"&gt;&lt;/a&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>4. ASP中对数据库表的操作(Insert/Update/Delete),可使用事务处理,并支持多事务处理. <br>在ASP的数据库对象链接对象中,提供了一下属性: <br>BeginTrans 事务开始 <br>CommitTrans 事务提交 <br>RollbackTrans 事务回滚 <br>&lt;% <br>On Error Resume Next &#8217;错误发生后继续处理 <br>'Asp中使用事务 <br>Set conn=Server.CreateObject("ADODB.Connection") <br>conn.Open "course_dsn","course_user","course_password" <br>conn.begintrans '开始事务 <br>sql="delete from user_info" <br>set rs=server.createobject("adodb.recordset") <br>rs.open sql,conn,3,3 <br>if conn.errors.count&gt;0 then '有错误发生 <br>conn.rollbacktrans '回滚 <br>set rs=nothing <br>conn.close <br>set conn=nothing <br>response.write "交易失败，回滚至修改前的状态！" <br>response.end <br>else <br>conn.committrans '提交事务 <br>set rs=nothing <br>conn.close <br>set conn=nothing <br>response.write "交易成功！" <br>response.end <br>end if <br>%&gt; <br>在ASP中,不提供事务的结束,BeginTrans只作用于自己的域,类似于变量声明一样,如果在函数体内BeginTrans,则事物只作用于本函数体,如果BeginTrans在函数体外,处于页面级,则事务的作用域从BeginTrans开始,到页面的结束均处于事务的管理状态下. <br>5. EasySales数据库操作 <br><br>dim objCon,objRst,objsql <br>dim companyid <br>Set objCon = Server.CreateObject("ADODB.Connection") <br>objCon.Open SYSDNS,SYSNAME,SYSPASSWORD <br>Set objRst = Server.CreateObject("ADODB.RecordSet") <br>objsql="select * from PasswordConfig where companyid='"&amp;session("CompanyID")&amp;"'" <br>objRst.Open objsql,objCon,1,3 <br>6. html格式邮件发送 <br>HTML = "&lt;html&gt;" <br>HTML = HTML &amp; "&lt;head&gt;" <br>HTML = HTML &amp; "&lt;title&gt;Sending CDONTS Email Using HTML&lt;/title&gt;" <br>HTML = HTML &amp; "&lt;link href="../cn/new.css" rel="stylesheet" type="text/css"&gt;" <br>HTML = HTML &amp; "&lt;/head&gt;" <br>HTML = HTML &amp; "&lt;body bgcolor=""FFFFFF""&gt;" <br>HTML = HTML &amp; "&lt;p&gt;&lt;font size=7&gt;" <br>HTML = HTML &amp; "This is a test mail in html&lt;br&gt;" <br>HTML = HTML &amp; "Mail content here ...&lt;/font&gt;&lt;/p&gt;" <br>HTML = HTML &amp; "&lt;/body&gt;" <br>HTML = HTML &amp; "&lt;/html&gt;" <br>dim StrRecEmail,StrPosEmail,StrSubject,StrBody <br>StrRecEmail=request("email") <br>StrPosEmail="yufh@alleasy.com.cn" <br>StrSubject="资料下载通知函" <br>StrBody=HTML <br>7. input是下划线 <br>style="BORDER-RIGHT: #f7f7f7 0px solid; BORDER-TOP: #f7f7f7 0px solid; FONT-SIZE: 9pt; BORDER-LEFT: #f7f7f7 0px solid; WIDTH: 110px; BORDER-BOTTOM: #c0c0c0 1px solid; HEIGHT: 16px; BACKGROUND-COLOR: #f7f7f7" <br>8. Session &amp; Cookie <br>写入一个SESSION：　 <br>　　 Session["username"])="aa"; <br>　　 Session("username")="aa" 　　 <br>　　 读取一个SESSINN： 　　 <br>　　 string username= Session["username"];　 <br>　　 dim username=Session("username")　　 <br>　　 Cookie与此用法大致相同 <br>9. 几个VB中的常数 <br>下列常数由 Visual Basic for Applications 中的类型库定义，可用来在代码中的任何地方代替实际值： <br>常数 等于 描述 <br>vbCrLf Chr(13) + Chr(10) 回车符与换行符结合 <br>vbCr Chr(13) 回车符 <br>vbLf Chr(10) 换行符 <br>vbNewLine Chr(13) + Chr(10) 平台指定的新行字符；适用于当前平台 <br>vbNullChar Chr(0) 值为 0 的字符 <br>vbNullString 值为 0 的字符串 用来调用外部过程；与长度为零的字符串 ("") 不同 <br>vbObjectError -2147221504 用户定义的错误号应当大于该值，例如： <br>Err.Raise Number = vbObjectError + 1000 <br>vbTab Chr(9) Tab 字。 <br>vbBack Chr(8) 退格字符 <br><br>10. 按钮为不可用 <br>&lt;%if rsView.eof and rsView.bof then %&gt; &#8216; 这里有个大问题，下文再说 <br>&lt;input name="submit" type='submit' value='对选定用户解鎖' disabled&gt; <br>&lt;%else%&gt; <br>&lt;input name="submit" type='submit' value='对选定用户解鎖' &gt; <br>&lt;/td&gt; <br>&lt;%end if%&gt; <br></p>
<img src ="http://www.blogjava.net/9611/aggbug/112101.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/9611/" target="_blank">dyok</a> 2007-04-20 08:48 <a href="http://www.blogjava.net/9611/archive/2007/04/20/112101.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>