<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[Bansi&#39;s Study notes]]></title>
        <image>
        <title>http://hi.baidu.com</title>
        <link>http://hi.baidu.com</link>
        <url>http://img.baidu.com/img/logo-hi.gif</url>
        </image>
<description><![CDATA[读书百遍，其义自见。我很正经的！]]></description>
<link>http://hi.baidu.com/bansi</link>
<language>zh-cn</language>
<generator>www.baidu.com</generator>
<ttl>5</ttl>


<item>
        <title><![CDATA[IE里无法获取input的value值]]></title>
        <link><![CDATA[http://hi.baidu.com/bansi/blog/item/87e0d3ca2d806d41f21fe702.html]]></link>
        <description><![CDATA[
		
		<p>在函数中生成input标签，并设置input.name属性，最后通过js方式获取input的值。使用document.getElementsByName()方法，结果FF正常，IE里获取的value值为空。<br>
&nbsp;&nbsp;  //var aryResult = document.getElementsByName(&quot;cateResult&quot;);<br>
&nbsp;&nbsp;  //alert(aryResult.innerHTML);<br>
&nbsp;&nbsp;  //for(var i=0;i&lt;aryResult.length;i++){<br>
&nbsp;&nbsp;&nbsp;&nbsp;  //alert(aryResult[i].value);<br>
  //oResult.value += aryResult[i].value+&quot;,&quot;; <br>
&nbsp;&nbsp;  //}</p>
<p> </p>
<p>&nbsp;&nbsp;  var oResult = document.getElementById(&quot;cateResult&quot;); // 保存返回值的对象<br>
&nbsp;&nbsp;  var oShowResult = document.getElementById(&quot;show_select&quot;);<br>
&nbsp;&nbsp;  var aryResult = oR.getElementsByTagName(&quot;input&quot;);</p>
<p>使用ByTagName方式遍历input元素再获取value值的方式IE与FF都有效。</p> <a href="http://hi.baidu.com/bansi/blog/item/87e0d3ca2d806d41f21fe702.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/bansi/blog/category/Javascript">Javascript</a>&nbsp;<a href="http://hi.baidu.com/bansi/blog/item/87e0d3ca2d806d41f21fe702.html#comment">查看评论</a>]]></description>
        <pubDate>2008-12-16  16:14</pubDate>
        <category><![CDATA[Javascript]]></category>
        <author><![CDATA[笑半死]]></author>
		<guid>http://hi.baidu.com/bansi/blog/item/87e0d3ca2d806d41f21fe702.html</guid>
</item>

<item>
        <title><![CDATA[IE里input元素type为checkbox与radio的checked=true失效]]></title>
        <link><![CDATA[http://hi.baidu.com/bansi/blog/item/e9caf6d36a4c74d8a9ec9a1f.html]]></link>
        <description><![CDATA[
		
		<p><strong>Bansi:</strong> 最近碰到的一个问题，IE里面使用createElement方式生成input元素，并设置checked=true;结果IE里失效，checkbox、radio选择框并没有被选择起来。找到一篇文章，里面提供了解决思路。但是，还有一个问题，按照下文的方法能够解决IE的问题，FF里又来问题了。下看原文，最后提供一个我的解决方案供参考与交流。</p>
<p>使用DOM来创建页面元素的一些问题(转)<br>
原文地址：<a href="http://blog.csdn.net/yangdengfeng2003/archive/2007/05/05/1597426.aspx">http://blog.csdn.net/yangdengfeng2003/archive/2007/05/05/1597426.aspx</a><br>
在IE中使用DOM方式来动态创建页面元素的时候，我发现了一些问题。记录于此，如果您有好的意见欢迎提供，如果您也遇到此问题，希望能有助你解决。<br>
<br>
&nbsp;&nbsp;&nbsp;  对于动态HTML编程，IE实现了两套模型：一套是以操作innerHTML为主的狭义的DHTML，一套是以集合方式操作(appendChild)页面元素对象的DOM(Document Object Model)。DHTML方式(<em>我本文说的DHTML都默认指的对于innerHTML进行操作的编程方式，不是广义的DHTML。</em>)直接操作html代码片断，主要靠Web程序员使用字符串拼接来生成页面元素，这是一种高效的动态页面操作方式，不过似乎少些编程逻辑的味道，代码中往往散布着大量不完整的html代码片断。而DOM方式进行动态页面编程，在逻辑上是一种对集合和元素对象的操作，编程逻辑比较清晰，不过效率上有一些<a href="http://www.cnblogs.com/birdshome/archive/2005/02/15/104599.html#104793"><font color="#1d58d1">差别</font></a>。具体使用什么方式来实现动态Web页面，大多数情况下是个人的喜好问题，除非在效率上必须锱铢必较。<br>
<br>
&nbsp;&nbsp;&nbsp;  使用DOM，最常用的方法就是document.createElement(sTag)，sTag是一个合法的html标签名字(tagName)。我们创建好一个html元素对象后，对它的属性进行赋值，然后insertBefore或appendChild到页面的DOM对象树中。这里msdn提醒了几个注意事项：<br>
<br>
&nbsp;&nbsp;&nbsp;  1、不能通过编程方式动态创建frame和iframe元素(IE 5.0及以下)；<br>
&nbsp;&nbsp;&nbsp;  2、input元素被创建后默认的类型是input type='text'；<br>
&nbsp;&nbsp;&nbsp;  3、需要使用其他类型的input元素，需要在把input对象放入DOM对象树之前给input.type赋予你希望的类型，否则在input insert或append进入DOM对象树后不能再修改；<br>
&nbsp;&nbsp;&nbsp;  4、button元素被创建后默认的类型是普通按钮，要使用其它类型按钮，需要遵循和问题3相同的注意事项；<br>
&nbsp;&nbsp;&nbsp;  5、不能为通过向元素对象赋值得方式，为元素对象添加NAME属性(这个在&quot;<a href="http://www.cnblogs.com/birdshome/archive/2005/01/31/99562.html"><font color="#1d58d1">细说HTML元素的ID和NAME属性详解</font></a>&quot;一文里也是提过的)。<br>
&nbsp;&nbsp;&nbsp;  6、sTag其实不只限于html标签名，任何合法的html元素语句都可以。<br>
<br>
&nbsp;&nbsp;&nbsp;  下面说一下我遇到的问题，当我在使用DOM方式进行动态页面创建的时候，发现不能使用普通的DOM方式为input type='checkbox'和input type='radio'赋初值。即下面的语句：</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> <span style="color: #0000ff">var</span><span style="color: #000000"> input </span><span style="color: #000000">=</span><span style="color: #000000"> document.createElement('INPUT');<br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> input.type </span><span style="color: #000000">=</span><span style="color: #000000"> 'checkbox';<br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> input.checked </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">;<br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> document.body.appendChild(input);<br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"><br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> input </span><span style="color: #000000">=</span><span style="color: #000000"> document.createElement('INPUT');<br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> input.type </span><span style="color: #000000">=</span><span style="color: #000000"> 'radio';<br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> input.checked </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">;<br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> document.body.appendChild(input);</span></div>
</div>
<p>&nbsp;&nbsp;&nbsp;  不能得到我期望的效果： ，而只能得到： 。<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;  而要得到我期望的效果，需要混合DHTML和DOM两种方式就是说我必须在sTag里就构建好的属性，使用如下代码：</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"><span style="color: #000000"> </span><span style="color: #0000ff">var</span><span style="color: #000000"> input </span><span style="color: #000000">=</span><span style="color: #000000"> document.createElement('</span><span style="color: #000000">&lt;</span><span style="color: #000000">INPUT checked</span><span style="color: #000000">&gt;</span><span style="color: #000000">');<br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> input.type </span><span style="color: #000000">=</span><span style="color: #000000"> 'checkbox';<br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> document.body.appendChild(input);<br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"><br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> input </span><span style="color: #000000">=</span><span style="color: #000000"> document.createElement('</span><span style="color: #000000">&lt;</span><span style="color: #000000">INPUT checked</span><span style="color: #000000">&gt;</span><span style="color: #000000">');<br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> input.type </span><span style="color: #000000">=</span><span style="color: #000000"> 'radio';<br>
<img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"> document.body.appendChild(input);</span></div>
</div>
<p>&nbsp;&nbsp;&nbsp;  才能得到被赋予初值得INPUT元素： 。</p>
<p> </p>
<p><strong>解决方法1：使用JS语句判断浏览器类型，根据不同的浏览器生成不同的代码。</strong><br>
<br>
&nbsp;&nbsp;&nbsp;  if(document.all){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  var input=document.createElement('&lt;input checked&gt;');//IE代码<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }else{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  var input=document.createElement('input'); //其他<br>
&nbsp;&nbsp;&nbsp;&nbsp;  input.checked=true;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
<br>
<strong>解决方法2：使用innerHTML方式生成input元素，并设置其属性跟方法。<br>
</strong><br>
该方式，经过实际测试，对IE跟FF来说都是一致的。</p> <a href="http://hi.baidu.com/bansi/blog/item/e9caf6d36a4c74d8a9ec9a1f.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/bansi/blog/category/Javascript">Javascript</a>&nbsp;<a href="http://hi.baidu.com/bansi/blog/item/e9caf6d36a4c74d8a9ec9a1f.html#comment">查看评论</a>]]></description>
        <pubDate>2008-12-15  16:52</pubDate>
        <category><![CDATA[Javascript]]></category>
        <author><![CDATA[笑半死]]></author>
		<guid>http://hi.baidu.com/bansi/blog/item/e9caf6d36a4c74d8a9ec9a1f.html</guid>
</item>

<item>
        <title><![CDATA[Js两种面向对象写法效率比较]]></title>
        <link><![CDATA[http://hi.baidu.com/bansi/blog/item/84a00b247adaf234c89559f3.html]]></link>
        <description><![CDATA[
		
		<p><a target="_blank" href="http://hi.baidu.com/bansi">Bansi</a>:转载了一篇文章， 以及一个实例的代码片段。实际上这两种写法的比较，在以前<a target="_blank" href="http://hi.baidu.com/bansi/blog/item/1ccea5447ca54e86b2b7dccd.html">javascript面向对象编程学习笔记二</a>里有详细叙述。里面建议的方法是结合两种方式。<br>
<br>
javascript中的对象JS作为一种动态语言，在语法上有相当大的自由度，所以造成了一种功能，有N种写法的局面。 <br>
在JS中实现OOP，一般来说有两种方法： <br>
第一种：使用this关键字 <br>
function Class1() <br>
{ <br>
this.onclick = function(e) <br>
{ <br>
for (var i=0; i &lt; 1000; i++) <br>
{ <br>
var a = new Date(); <br>
} <br>
} <br>
} <br>
使用this.的方法可以很灵活地给对象添加属性和方法，而且和大部分的OOP语言都相似，甚至在运行中都可以添加。 <br>
第二种：使用prototype关键字 <br>
function clickFunc(e) <br>
{ <br>
for (var i=0; i &lt; 1000; i++) <br>
{ <br>
var a = new Date(); <br>
} <br>
} <br>
function Class2() <br>
{ <br>
} <br>
Class2.prototype.onclick = clickFunc; <br>
这种用法上来讲就没有第一种显得灵活。不过在一个对象new出来之前，也是一样可以随时添加一个对象的属性和方法。 <br>
可是他们并不是相等的，相对来说，我更喜欢第一种，因为第一种方法相对比较集中，比较容易阅读代码。但是在运行的时候，他们运行的效率却差别相当地大。以下让我们看一下测试代码吧： <br>
var total = new Array(); <br>
function Test1() <br>
{ <br>
var a = new Date(); <br>
for (var i=0; i &lt; 10000; i++) <br>
{ <br>
var c = new Class1(); <br>
//total.push(c); <br>
} <br>
var b = new Date(); <br>
alert(b.getTime()-a.getTime()); <br>
} <br>
function Test2() <br>
{ <br>
var a = new Date(); <br>
for (var i=0; i &lt; 10000; i++) <br>
{ <br>
var c = new Class2(); <br>
//total.push(c); <br>
} <br>
var b = new Date(); <br>
alert(b.getTime()-a.getTime()); <br>
} <br>
第一步作执行时间的测试：发现Test1()需要142ms,而Test2()仅需50ms.发现时间效率上来说，prototype的方法相对this来说，更加高效。 <br>
javascript的对象第二步作内存占用的测试，把total.push(c);这行的注释去掉，之所以要把它们加入到数组里面去，防止创建的时候，对象比较多的时候，没有被引用的对象被GC了。结果发现差距不是一般的大，第一种方法要占用二三十M的内存，而第二种只需要一百多K。 <br>
javascript创建对象<br>
成因推断： <br>
在处理这两种代码的时候，第一种，JS的解析器，给每个对象都创建一个单独的方法，这样增加了内存的开销，同时创建方法的时候，增加了运行时间。第二种，JS的解析器和大部分的OOP编译器一样的，把对象的数据段和方法段分开存储了，对于对象的私有数据，则是每个对象一份，而这些方法，则是放在公共的方法段里，所以可以减少运行时间和内存的开销。</p>
<p>本文来自: 脚本之家(<a href="http://www.jb51.net/">www.jb51.net</a>) 详细出处参考：<a href="http://www.jb51.net/article/13211.htm">http://www.jb51.net/article/13211.htm</a><br>
<br>
<br>
job001.cn里的一段JS代码。</p>
<p><br>
//InstanceName:对象名称；maxNum：最多可以选择多少类别；sType：0城市选择，1岗位选择<br>
<br>
function Selector(InstanceName,maxNum,sType){<br>
//对象名称<br>
this.instanceName=InstanceName;<br>
//保存结果的表单域<br>
this.oResultField=null;<br>
//最多选择的个数<br>
this.maxNum=maxNum;<br>
<br>
//函数<br>
this.returnFormatResult=returnFormatResult;//返回格式化过的结果<br>
this.returnCheckStatus=returnCheckStatus;//根据格式化过的结果返回第i个类型的选择状态<br>
this.setContent=setContent;//设置当前要显示的内容<br>
this.setContent1=setContent1;//设置第一级类型的内容<br>
this.setContent2=setContent2;//设置第二级类型的内容<br>
this.setContent3=setContent3;//设置第三级类型的内容<br>
this.setTitleHtml=setTitleHtml;//设置当前类别的标题</p>
<p>}</p> <a href="http://hi.baidu.com/bansi/blog/item/84a00b247adaf234c89559f3.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/bansi/blog/category/Javascript">Javascript</a>&nbsp;<a href="http://hi.baidu.com/bansi/blog/item/84a00b247adaf234c89559f3.html#comment">查看评论</a>]]></description>
        <pubDate>2008-11-18  15:06</pubDate>
        <category><![CDATA[Javascript]]></category>
        <author><![CDATA[笑半死]]></author>
		<guid>http://hi.baidu.com/bansi/blog/item/84a00b247adaf234c89559f3.html</guid>
</item>

<item>
        <title><![CDATA[弹出框效果]]></title>
        <link><![CDATA[http://hi.baidu.com/bansi/blog/item/b8e9868ba77583d4fd1f10e1.html]]></link>
        <description><![CDATA[
		
		<p>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;&lt;html">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;&lt;html</a> xmlns=&quot;<a href="http://www.w3.org/1999/xhtml&quot;&gt;&lt;head&gt;&lt;title&gt;pop&lt;/title">http://www.w3.org/1999/xhtml&quot;&gt;&lt;head&gt;&lt;title&gt;pop&lt;/title</a>&gt;<br>
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot; /&gt;<br>
&lt;style type=&quot;text/css&quot;&gt;<br>
.form{position:relative}<br>
#popContent{<br>
&nbsp;&nbsp;  display:none;<br>
&nbsp;&nbsp;  position:absolute;<br>
&nbsp;&nbsp;  /*<br>
&nbsp;&nbsp;  visibility:hidden;<br>
&nbsp;&nbsp;  */<br>
&nbsp;&nbsp;  left:180px;<br>
&nbsp;&nbsp;  top:0;<br>
&nbsp;&nbsp;  width:200px;<br>
&nbsp;&nbsp;  border:1px solid #ddd;<br>
&nbsp;&nbsp;  background:#f5f5f5;<br>
&nbsp;&nbsp;  overflow: hidden; /* 防止内容过多溢出 */<br>
}<br>
&lt;/style&gt;<br>
&lt;script type=&quot;text/javascript&quot;&gt;<br>
var sBaseText = null;<br>
// 显示弹出框<br>
function showPopup(w, h){<br>
&nbsp;&nbsp;  var oPopup = document.getElementById(&quot;popContent&quot;);<br>
&nbsp;&nbsp;  oPopup.style.display = &quot;block&quot;;<br>
&nbsp;&nbsp;  oPopup.style.width = w + &quot;px&quot;;<br>
&nbsp;&nbsp;  oPopup.style.height = h + &quot;px&quot;;  <br>
&nbsp;&nbsp;  if(sBaseText == null) sBaseText = oPopup.innerHTML; <br>
 <font color="#ff0000">  oPopup.innerHTML = sBaseText + &quot;&lt;div id=\&quot;statusbar\&quot;&gt;&lt;input type=\&quot;button\&quot; value=\&quot;OK\&quot; onclick=\&quot;checkedValue()\&quot; id=\&quot;btnOK\&quot;/&gt; &lt;input type=\&quot;button\&quot; onclick=\&quot;hidePopup()\&quot; value=\&quot;close\&quot;/&gt;&lt;/div&gt;&quot;;  <br>
</font>&nbsp;&nbsp;  var sBar = document.getElementById(&quot;statusbar&quot;);<br>
&nbsp;&nbsp;  // 设置状态条的位置<br>
&nbsp;&nbsp;  //sBar.style.marginTop = (parseInt(h)-120) + &quot;px&quot;;&nbsp;&nbsp;  <br>
}<br>
// 隐藏弹出框<br>
function hidePopup(){<br>
&nbsp;&nbsp;  var oPopup = document.getElementById(&quot;popContent&quot;);<br>
&nbsp;&nbsp;  oPopup.style.display = &quot;none&quot;; <br>
}<br>
// 传递选中的值到input中<br>
function checkedValue(){<br>
&nbsp;&nbsp;  var aryRadioValue = document.getElementsByName(&quot;name&quot;);<br>
&nbsp;&nbsp;  for(var i=0; i&lt;aryRadioValue.length; i++){<br>
&nbsp;&nbsp;&nbsp;&nbsp;  if(aryRadioValue[i].checked){<br>
&nbsp;&nbsp;&nbsp;&nbsp;  //alert(aryRadioValue[i].value);<br>
&nbsp;&nbsp; var oResultCityName = document.getElementById(&quot;resultCity&quot;); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  oResultCityName.value= aryRadioValue[i].value;<br>
  }<br>
&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;  hidePopup();<br>
}<br>
// 测试函数-------<br>
// 获取input的值<br>
function getValue(){<br>
&nbsp;&nbsp;  var oResultCityName = document.getElementById(&quot;resultCity&quot;);<br>
&nbsp;&nbsp;  alert(oResultCityName.value);<br>
}<br>
// 改变input的值。<br>
function change(){<br>
&nbsp;&nbsp;  var oResultCityName = document.getElementById(&quot;resultCity&quot;); <br>
&nbsp;&nbsp;  oResultCityName.value= &quot;change city name&quot;;<br>
&nbsp;&nbsp;  alert(&quot;change is ok!&quot;);<br>
}<br>
&lt;/script&gt;<br>
&lt;/head&gt;<br>
&lt;body&gt;</p>
<p>&lt;form class=&quot;form&quot;&gt;<br>
&lt;input type=&quot;test&quot; value=&quot;cow&quot; id=&quot;resultCity&quot; onclick=&quot;showPopup(200,200)&quot;/&gt;士大夫士大夫士大夫<br>
&lt;div id=&quot;popContent&quot;&gt;<br>
&lt;h3&gt;选择分类&lt;/h3&gt;<br>
&lt;ul class=&quot;&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;  &lt;li&gt;&lt;input type=&quot;radio&quot; name=&quot;name&quot; value=&quot;bansi&quot; id=&quot;username&quot;/&gt;&lt;label for=&quot;username&quot;&gt;安定bansi&lt;/label&gt;&lt;/li&gt;<br>
&nbsp;&nbsp;&nbsp;  &lt;li&gt;&lt;input type=&quot;radio&quot; name=&quot;name&quot; value=&quot;kevin&quot; id=&quot;userborn&quot;/&gt;&lt;label for=&quot;userborn&quot;&gt;kevin&lt;/label&gt;&lt;/li&gt;<br>
&nbsp;&nbsp;&nbsp;  &lt;li&gt;&lt;input type=&quot;radio&quot; name=&quot;name&quot; value=&quot;luos&quot; id=&quot;usercity&quot;/&gt;&lt;label for=&quot;usercity&quot;&gt;luos&lt;/label&gt;&lt;/li&gt;<br>
&lt;/ul&gt;<br>
&lt;/div&gt;&lt;!-- end div#popContent --&gt;<br>
&lt;/form&gt;<br>
&lt;input type=&quot;button&quot; value=&quot;Change&quot; onclick=&quot;change()&quot;/&gt;<br>
&lt;input type=&quot;button&quot; value=&quot;getValue&quot; onclick=&quot;getValue()&quot;/&gt;<br>
&lt;input type=&quot;button&quot; value=&quot;show&quot; onclick=&quot;showPopup(200, 300)&quot; /&gt;<br>
&lt;/body&gt;<br>
&lt;/html&gt;</p>
<p> </p>
<p>红色部分标出的使用转义符进行html代码的连接非常方便，遇到&quot;就在前面加 \ 。相比使用加号跟引号比起来方便很多，不容易出错。</p> <a href="http://hi.baidu.com/bansi/blog/item/b8e9868ba77583d4fd1f10e1.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/bansi/blog/category/Javascript">Javascript</a>&nbsp;<a href="http://hi.baidu.com/bansi/blog/item/b8e9868ba77583d4fd1f10e1.html#comment">查看评论</a>]]></description>
        <pubDate>2008-11-18  14:33</pubDate>
        <category><![CDATA[Javascript]]></category>
        <author><![CDATA[笑半死]]></author>
		<guid>http://hi.baidu.com/bansi/blog/item/b8e9868ba77583d4fd1f10e1.html</guid>
</item>

<item>
        <title><![CDATA[JS验证框架]]></title>
        <link><![CDATA[http://hi.baidu.com/bansi/blog/item/1ccea5440c7a1e87b2b7dc03.html]]></link>
        <description><![CDATA[
		
		<p>去年年底用Javascript写了个JS验证框架，我(<a target="_blank" href="http://hi.baidu.com/bansi">bansi</a>)称之为JS通用验证框架。将表现、结构、控制三层结构完全分离。写页面的人只需要引入JS文件，然后不用写任何js语句，只用像写xhtml那些写自己的网页。</p>
<p>列举一个代码片段：<br>
&lt;tr&gt;<br>
&nbsp;&nbsp;&nbsp;  &lt;th&gt;用户名&lt;/th&gt;<br>
&nbsp;&nbsp;&nbsp;  &lt;td&gt;<strong>&lt;input type=&quot;text&quot;<font color="#0000ff"> rel=&quot;用户名为4-12位的字母;english,len(2|6)&quot;</font> /&gt;</strong>&lt;/td&gt;<br>
&lt;/tr&gt;</p>
<p>验证条件是写在rel这个属性里面的，写这个属性就如同写xhtml一样方便跟习惯，与onclick=&quot;&quot;等语句相比还是要方便很多的。&quot;;&quot;分号前是提示语言，分号后为验证条件，如english要求输入的是英文格式，len(2|6)要求字符在2-6的长度之间。一切都这么自然。恩，我想说的是，功能自己已经很满意了，可惜还存在不足.效果在这里<a target="_blank" href="http://www.baiaogugoal.cn/bansi/validate/">可以测试</a>.</p>
<p>代码还可以再优化的，比如用JS面向对象。最终的效果没有完全实现，我希望的是在所有验证未通过前让提交按钮隐藏，只有全部<strong>都同时通过</strong>验证时才显示提交按钮。总之，当时是试了很多方法没能实现，搞定这个问题在我的代码基础之上应该是很难的。我认为是我的程序设计思路有问题，需要改善。源码相信从那个地址进去很容易就能下到。有兴趣的朋友不妨捣鼓一下，有什么新发现记得给我邮件或是留言。</p>
<p> </p> <a href="http://hi.baidu.com/bansi/blog/item/1ccea5440c7a1e87b2b7dc03.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/bansi/blog/category/Javascript">Javascript</a>&nbsp;<a href="http://hi.baidu.com/bansi/blog/item/1ccea5440c7a1e87b2b7dc03.html#comment">查看评论</a>]]></description>
        <pubDate>2008-05-06  18:29</pubDate>
        <category><![CDATA[Javascript]]></category>
        <author><![CDATA[笑半死]]></author>
		<guid>http://hi.baidu.com/bansi/blog/item/1ccea5440c7a1e87b2b7dc03.html</guid>
</item>

<item>
        <title><![CDATA[ASP生成RSS实战]]></title>
        <link><![CDATA[http://hi.baidu.com/bansi/blog/item/27bc2add11913ddc8d102912.html]]></link>
        <description><![CDATA[
		
		<p><a target="_blank" href="http://hi.baidu.com/bansi">Bansi</a>:ASP生成RSS是必须的且ASP制作RSS也不难。对于一个动态网站来说，无论是ASP或是其他，RSS是必须的。这里不解释ASP RSS为什么重要，因为这个能在网站Google到一大把，我则是从网站推广角度来认识RSS的重要性。其实RSS订阅推广，比起在网站上留些垃圾宣传连接跟信息更有益、手法更为健康安全。我很难相信到处都能看到同一个网站千篇一律的留言会是什么好鸟的。我的个人实践也证明RSS订阅推广的方法是有效的(这是个新方法，以后必定会被采纳为网站推广的重要手段)。话再说回来，即使你的网站全是静态的html网页，你仍然可以制作一个RSS。<br>
<br>
<a target="_blank" href="http://hi.baidu.com/bansi/blog/item/cd300df7e70bd927720eec16.html">ASP生成RSS的方法</a>，我转帖在了博客，里面有详尽的介绍，思路也非常清晰。看完这篇就可以实战，其实，这个实战就是帖个asp生成rss的源代码。然后你可以看看<a target="_blank" href="http://www.aspxuexi.com/topics/xml/2007-3-7/rss.htm">RSS2.0规范</a>里面的介绍，便于了解各个元素的意思。下面是调试通过的ASP代码。</p>
<p>说明下：<br>
1.第一句是引用数据库的conn.asp文件，你需要修改为你的数据库<a target="_blank" href="http://hi.baidu.com/bansi/blog/item/0d0b327a8ec67fe82e73b3ef.html">连接文件的路径</a>。<br>
2.我的表是news表，另外字段也是我自己的，你需要修改为你自己的字段。<br>
3.&lt;![CDATA[中山市嘉科电子有限公司专业生产<a target="_blank" href="http://www.jkpcba.com">控制板</a>]]&gt; 注意这个，如果里面是中文、或是有html标签等，都放在&lt;![CDATA[ ]]&gt; 的里面。</p>
<p>&lt;!--#include file=&quot;../inc/conn.asp&quot;--&gt; <br>
&lt;%<br>
&nbsp;&nbsp;  Set rs = Server.CreateObject(&quot;ADODB.Recordset&quot;)<br>
&nbsp;&nbsp;  sql = &quot;Select top 10 * from news order by id desc&quot;<br>
&nbsp;&nbsp;  rs.open sql,conn,1,1<br>
%&gt;<br>
&lt;%<br>
With Response <br>
&nbsp;&nbsp;  .ContentType = &quot;text/XML&quot; <br>
&nbsp;&nbsp;  .write(&quot;&lt;?xml version=&quot;&quot;1.0&quot;&quot; encoding=&quot;&quot;gb2312&quot;&quot;?&gt;&quot;) <br>
&nbsp;&nbsp;  .write(&quot;&lt;rss version=&quot;&quot;2.0&quot;&quot;&gt;&quot;)<br>
&nbsp;&nbsp;  .write(&quot;&lt;channel&gt;&quot;) <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;title&gt;&lt;![CDATA[中山市嘉科电子有限公司]]&gt;&lt;/title&gt;&quot;) <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;link&gt;http://www.jkpcba.com&lt;/link&gt;&quot;)&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;description&gt;&lt;![CDATA[中山市嘉科电子有限公司专业生产控制板]]&gt;&lt;/description&gt;&quot;) <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;language&gt;zh-cn&lt;/language&gt;&quot;)&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;generator&gt;BanSi Asp2html CMS&lt;/generator&gt;&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;managingEditor&gt;huangqiang2360@163.com&lt;/managingEditor&gt;&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;copyright&gt;Copyright@2003-2008 嘉科电子有限公司&lt;/copyright&gt;&quot;)<br>
&nbsp;&nbsp;&nbsp;  do until rs.eof&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;item&gt;&quot;) <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;title&gt;&lt;![CDATA[&quot;&amp;rs(&quot;title&quot;)&amp;&quot;]]&gt;&lt;/title&gt;&quot;) <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;link&gt;&quot;&amp;rs(&quot;filepath&quot;)&amp;&quot;&lt;/link&gt;&quot;) <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;author&gt;Admin&lt;/author&gt;&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;description&gt;&lt;![CDATA[&quot;&amp;rs(&quot;content&quot;)&amp;&quot;]]&gt;&lt;/description&gt;&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;pubDate&gt;&quot;&amp;rs(&quot;sendTime&quot;)&amp;&quot;&lt;/pubDate&gt;&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;category&gt;&lt;![CDATA[分类：流水日志]]&gt;&lt;/category&gt;&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;/item&gt;&quot;) <br>
&nbsp;&nbsp;&nbsp;  rs.MoveNext<br>
&nbsp;&nbsp;&nbsp;  Loop <br>
&nbsp;&nbsp;  .write(&quot;&lt;/channel&gt;&quot;)<br>
&nbsp;&nbsp;  .write(&quot;&lt;/rss&gt;&quot;) <br>
End with <br>
%&gt;</p>
<p>&lt;%<br>
&nbsp;&nbsp;  rs.close<br>
&nbsp;&nbsp;  set rs = nothing<br>
&nbsp;&nbsp;  conn.close<br>
&nbsp;&nbsp;  set conn = nothing<br>
%&gt;</p> <a href="http://hi.baidu.com/bansi/blog/item/27bc2add11913ddc8d102912.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/bansi/blog/category/aspnet%26%2347%3Bjsp%26%2347%3Bphp">aspnet&#47;jsp&#47;php</a>&nbsp;<a href="http://hi.baidu.com/bansi/blog/item/27bc2add11913ddc8d102912.html#comment">查看评论</a>]]></description>
        <pubDate>2008-05-04  09:35</pubDate>
        <category><![CDATA[aspnet&#47;jsp&#47;php]]></category>
        <author><![CDATA[笑半死]]></author>
		<guid>http://hi.baidu.com/bansi/blog/item/27bc2add11913ddc8d102912.html</guid>
</item>

<item>
        <title><![CDATA[ASP生成XML/RSS]]></title>
        <link><![CDATA[http://hi.baidu.com/bansi/blog/item/cd300df7e70bd927720eec16.html]]></link>
        <description><![CDATA[
		
		<p>ASP生成RSS实战 <br>
一、必须弄清楚最终需要的是什么</p>
<p>我们通过asp或其他动态编程语言，最终需要的是XML格式的数据，这点和XML数据所在的文件载体无关，它可以是实实在在的XML文件，比如：http://blog.knowsky.com/rss_1.xml 。也可以为asp文档，比如：http://www.knowsky.com/rss.asp?id=42</p>
<p>他们都是XML数据的体现，为了实现XML数据的动态，所以需要使用到动态编程语言，比如ASP来实现生成它。</p>
<p>二、如何生成动态的XML文档</p>
<p>如果是生成XML文件，介于动态文档是ASP格式的，所以必须借助FSO进行XML文件的生成，比如：</p>
<p>以下是引用片段：<br>
&lt;% <br>
xmlfile=server.mappath(&quot;test1.xml&quot;) <br>
Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;) <br>
Set MyFile = fso.CreateTextFile(xmlfile,True) <br>
MyFile.WriteLine(&quot;&lt;?xml version=&quot;&quot;1.0&quot;&quot; encoding=&quot;&quot;gb2312&quot;&quot;?&gt;&quot;) <br>
MyFile.WriteLine(&quot;&lt;世界&gt;&quot;) <br>
MyFile.WriteLine(&quot;&lt;你好&gt;hello,world&lt;/你好&gt;&quot;) <br>
MyFile.WriteLine(&quot;&lt;/世界&gt;&quot;) <br>
MyFile.Close <br>
%&gt;</p>
<p>&lt;a href=&quot;test1.xml&quot;&gt;查看XML文件内容&lt;/a&gt;</p>
<p>有关FSO的操作参看<br>
http://www.knowsky.com/tag-7.html</p>
<p>如果按照生成动态的XML数据文件来说，则是将MyFile.WriteLine的相关内容在动态文档中通过程式的手段来控制XML节点的名称和值即可。</p>
<p>三、如何使用动态文档生成XML数据</p>
<p>那如果不是生成XML文件，直接在动态文档上输出XML数据呢，须声明文件的类型（即Response.ContentType）</p>
<p>&lt;%Response.ContentType = &quot;text/XML&quot;%&gt;</p>
<p>比如直接浏览如下的动态ASP文档，在浏览器中下则显示为XML数据树</p>
<p>以下是引用片段：<br>
&lt;% <br>
With Response <br>
&nbsp;&nbsp;&nbsp;  .ContentType = &quot;text/XML&quot; <br>
&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;?xml version=&quot;&quot;1.0&quot;&quot; encoding=&quot;&quot;gb2312&quot;&quot;?&gt;&quot;) <br>
&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;世界&gt;&quot;) <br>
&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;你好&gt;hello,world&lt;/你好&gt;&quot;) <br>
&nbsp;&nbsp;&nbsp;  .write(&quot;&lt;/世界&gt;&quot;) <br>
End with <br>
%&gt;</p>
<p><br>
生成的XML文件，其优势就是处理该XML数据的文档可以是静态文档，比如HTML文件通过javascript、XMLDOM来解析XML，同时也易于数据的保留，而动态文档上的动态XML数据则没有这样有点。不过，在如今动态文档无处不在用的时代，似乎这个优势对于一些应用来说是无甚影响，甚至来说，动态文档的XML数据流反而更具优势：更及时、更动态。</p>
<p>四、生成XML数据就是这样行了吗？</p>
<p>无论是通过生成具体的XML文件，还是动态的XML数据流，只要按照XML的格式输出相关XML节点和值就可以了，这样看来XML似乎很简单。但这并没有真正接触到XML的操作。在我们看来，这些XML无非就是一些成对的标签和相关字符组成的数据记录，毫无生命力可言。然而事实上，通过XMLDOM来操作XML则显示了XML的绝对优势（这点在生成XML时优势不明显，却在添加、删除XML节点时体验无限）。</p>
<p>使用XMLDOM创建XML文档，可使用Save方法生成XML文档，使用createElement方法创建XML元素、createNode创建节点，其实对于XML中的任何标签的创建都可以任意选择其中的一种，不过一般使用createElement创建顶层（根）元素，使用createNode创建子节点（元素），当然createElement和createNode的使用方法也是不同。</p>
<p>以下是引用片段：<br>
&lt;% <br>
Set objXMLdoc = CreateObject(&quot;Microsoft.XMLDOM&quot;) <br>
Set world=objXMLdoc.createElement(&quot;世界&quot;) <br>
objXMLdoc.appendChild(world) <br>
Set hello=objXMLdoc.createNode(&quot;element&quot;, &quot;你好&quot;, &quot;&quot;) <br>
hello.Text = &quot;hello,world&quot; <br>
objXMLdoc.documentElement.appendChild(hello) <br>
objXMLdoc.Save Server.MapPath(&quot;test2.xml&quot;) <br>
Set objXMLdoc = Nothing <br>
%&gt;</p>
<p> </p>
<p>CreateObject(&quot;Microsoft.XMLDOM&quot;) 声明使用XMLDOM对象 <br>
在元素或节点被建立（createElement、createNode）时，其并没有加到文件树中，若要将节点加到文件树中，则需要插入，如appendChild。 <br>
xmlDocument.createNode(type, name, nameSpaceURI) 表示建立一个指定型态、名称，及命名空间的新节点<br>
type 用来确认要被建立的节点型态，name 是一个字符串来确认新节点的名称，命名空间的前缀则是选择性的。nameSpaceURI 是一个定义命名空间URI 的字符串。如果前缀被包含在名称参数中，此节点会在nameSpaceURI 的内文中以指定的前缀建立。如果不包含前缀，指定的命名空间会被视为预设的命名空间。<br>
objXMLdoc.createNode(&quot;element&quot;, &quot;你好&quot;, &quot;&quot;) 等同于 objXMLdoc.createElement(&quot;你好&quot;) <br>
4，objXMLdoc.documentElement.appendChild(hello)其实就是XML文档根元素下建立节点，在本例中等同于 world.appendChild(hello)，world为本例中的节点名，以此类推。<br>
所以可以这样来写：</p>
<p><br>
以下是引用片段：<br>
&lt;% <br>
Set objXMLdoc = CreateObject(&quot;Microsoft.XMLDOM&quot;) <br>
Set world=objXMLdoc.createElement(&quot;世界&quot;) <br>
objXMLdoc.appendChild(world) <br>
Set hello=objXMLdoc.createElement(&quot;你好&quot;) <br>
hello.Text = &quot;hello,world&quot; <br>
world.appendChild(hello) <br>
objXMLdoc.Save Server.MapPath(&quot;test2.xml&quot;) <br>
Set objXMLdoc = Nothing <br>
%&gt; <br>
 </p>
<p>需要注意的是，通过XMLDOM生成的XML文件都是UTF-8格式的，这对我们所有应用程序文件的UTF-8化作了很好的推介。</p>
<p>总结</p>
<p>生成XML数据，可以使用FSO，如FSO被禁用，可使用XMLDOM，当然还可以直接使用动态文档。不过如果融会贯通地掌握XML的操作，XMLDOM操作是必须的。<br>
<br>
本文出自：<a href="http://www.knowsky.com/">http://www.knowsky.com/</a>  摘录此文是方便介绍ASP生成RSS实战</p> <a href="http://hi.baidu.com/bansi/blog/item/cd300df7e70bd927720eec16.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/bansi/blog/category/aspnet%26%2347%3Bjsp%26%2347%3Bphp">aspnet&#47;jsp&#47;php</a>&nbsp;<a href="http://hi.baidu.com/bansi/blog/item/cd300df7e70bd927720eec16.html#comment">查看评论</a>]]></description>
        <pubDate>2008-05-04  09:27</pubDate>
        <category><![CDATA[aspnet&#47;jsp&#47;php]]></category>
        <author><![CDATA[笑半死]]></author>
		<guid>http://hi.baidu.com/bansi/blog/item/cd300df7e70bd927720eec16.html</guid>
</item>

<item>
        <title><![CDATA[ASP路径问题学习总结]]></title>
        <link><![CDATA[http://hi.baidu.com/bansi/blog/item/0d0b327a8ec67fe82e73b3ef.html]]></link>
        <description><![CDATA[
		
		<p>ASP路径问题曾是个捆扰<a target="_blank" href="http://hi.baidu.com/bansi/">Bansi</a>许久的问题，初学ASP的时候为了躲避这个路径问题。常常让数据库连接文件，以及其他所有ASP文件都放在网站的根目录。缺点是显而易见的，太多的文件夹杂在一起，使得管理起来极不方便。很喜欢广东电影里常出现的一句话&ldquo;出来混，早晚都得还&rdquo;，所以，遇到问题还是当即解决的好。今天就将ASP路径问题的学习总结笔记整理成文，方便自己也方便他人。</p>
<p>现在假设网站结构是这样的：</p>
<p><img src="http://hiphotos.baidu.com/bansi/pic/item/9accadec5cbcac3562d09fb2.jpg"><br>
再用文字复述下：<br>
站点根目录(wwwroot)下有三个文件夹分别：为Inc(公用文件夹，比如conn.asp这个公用的数据库连接文件)、DataBase(数据库文件夹）、Admin（管理员文件，比如文章编辑、等功能的文件用manage.asp文件示例）Index.asp(网站的首页文件)；</p>
<p>这样的网站结构应该还算不错，管理起来也方便。下面分别用不同目录下文件连接conn.asp数据库文件来示例。</p>
<p><strong>index.asp连接conn.asp文件时，考虑下面的方法引用它</strong>：<br>
&lt;!--#include file=&quot;inc/conn.asp&quot;--&gt;<br>
解读一下：这个路径使用的是相对路径，相对路径就是以自身为基准然后去比较与目标文件conn.asp文件的位置。从我们假设的网站结构知道index.asp文件位于根目录下，那么从根目录到conn.asp文件的路径就是inc/conn.asp了。</p>
<p><strong>Admin文件夹下的manage.asp连接conn.asp文件时，考虑下面的方法引用它：</strong></p>
<p>&lt;!--#include file=&quot;../inc/conn.asp&quot;--&gt;<br>
解读一下：&ldquo; ../ &rdquo;这里理解为相对于manage.asp文件本身返回上一级目录即返回根目录了，然后再进入下Inc文件夹的conn.asp文件。<br>
引申一下：假如现在Admin下还有个子文件夹，并且里面也包含了一个manage.asp文件，现在也要连接conn.asp文件，那么就像这样引用 &lt;!--#include file=&quot;../../inc/conn.asp&quot;--&gt; 等于是使用两次返回上级目录。</p>
<p>引用数据库文件时，使用如上方法去设置路径就不会遇到什么问题了，但是，还没有完。还有conn.asp数据库连接文件中，设置数据库路径的问题。</p>
<p><strong>Conn.asp文件里如何设置数据库mydata.mdb文件呢？<br>
</strong>其他文件如果要连接数据库，则也是以自身为基准去连接，但问题就出现了。比如conn.asp中这样设置数据库路径：<strong>db =&quot;../data/mydata.mdb&quot;</strong>&nbsp;&nbsp;  经常会出现这样的问题描述：<br>
<br>
Microsoft JET Database Engine (0x80004005)<br>
'F:\data\mydata.mdb'不是一个有效的路径。 确定路径名称拼写是否正确，以及是否连接到文件存放的服务器。</p>
<p>如上设置，index.asp不会有问题，但admin目录下的子文件就会出现问题。正确的方法是设置为：<br>
<strong>db =&quot;/data/mydata.mdb&quot; <br>
<br>
</strong>这句要解读的话，可以理解为从根目录出发。恩，这个跟上面的解读有点混，上面都是相对自身去找目标文件路径。如果按这个方法去找路径，存在多个子文件时肯定会出错，不能保证所有文件都正常，所以从根开始。不理解有没办法，只能死记了。</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><clk></clk></p> <a href="http://hi.baidu.com/bansi/blog/item/0d0b327a8ec67fe82e73b3ef.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/bansi/blog/category/aspnet%26%2347%3Bjsp%26%2347%3Bphp">aspnet&#47;jsp&#47;php</a>&nbsp;<a href="http://hi.baidu.com/bansi/blog/item/0d0b327a8ec67fe82e73b3ef.html#comment">查看评论</a>]]></description>
        <pubDate>2008-04-29  20:36</pubDate>
        <category><![CDATA[aspnet&#47;jsp&#47;php]]></category>
        <author><![CDATA[笑半死]]></author>
		<guid>http://hi.baidu.com/bansi/blog/item/0d0b327a8ec67fe82e73b3ef.html</guid>
</item>

<item>
        <title><![CDATA[ASP Javascript教程]]></title>
        <link><![CDATA[http://hi.baidu.com/bansi/blog/item/bee9e2cd5644ac540fb34581.html]]></link>
        <description><![CDATA[
		
		<p><a target="_blank" href="http://aspjavascript.com/lesson.asp"><strong>ASP JAVASCRIPT</strong></a><strong> -</strong> 一个国外的教程，对于跟我一样习惯了Javascript讨厌vbScript的人来说是个福音。</p>
<h1>Lesson Asp Javascript</h1>
<p><strong>Section One: General Overview</strong><br>
<a href="http://aspjavascript.com/lesson01.asp">Lesson 01</a> A General Overview<br>
<a href="http://aspjavascript.com/lesson02.asp">Lesson 02</a> Escape Characters<br>
<a href="http://aspjavascript.com/lesson03.asp">Lesson 03</a> The <strong><em>new String( )</em></strong> Constructor<br>
<a href="http://aspjavascript.com/lesson04.asp">Lesson 04</a> Using VBScript with JavaScript<br>
<a href="http://aspjavascript.com/lesson05.asp">Lesson 05</a> Bringing It Together</p>
<p><strong>Section Two: Request and Response</strong><br>
<a href="http://aspjavascript.com/lesson06.asp">Lesson 06</a> The Response Methods<br>
<a href="http://aspjavascript.com/lesson07.asp">Lesson 07</a> The Response Properties <br>
<a href="http://aspjavascript.com/lesson08.asp">Lesson 08</a> The Request Collections and Misc.<br>
<a href="http://aspjavascript.com/lesson09.asp">Lesson 09</a> Response.Cookies and Request.Cookies</p>
<p><strong>Section Three: Session, Application, and Includes</strong><br>
<a href="http://aspjavascript.com/lesson10.asp">Lesson 10</a> Global ASA<br>
<a href="http://aspjavascript.com/lesson11.asp">Lesson 11</a> Application Object<br>
<a href="http://aspjavascript.com/lesson12.asp">Lesson 12</a> Session Object<br>
<a href="http://aspjavascript.com/lesson13.asp">Lesson 13</a> Include Files</p>
<p><strong>Section Four: Server and ASPError</strong><br>
<a href="http://aspjavascript.com/lesson14.asp">Lesson 14</a> Server Object<br>
<a href="http://aspjavascript.com/lesson15.asp">Lesson 15</a> ASPError Object</p>
<p><strong>Section Five: Databases (and form field validation)</strong><br>
<a href="http://aspjavascript.com/lesson16.asp">Lesson 16</a> Making A Connection<br>
<a href="http://aspjavascript.com/lesson17.asp">Lesson 17</a> Using A Recordset<br>
<a href="http://aspjavascript.com/lesson18.asp">Lesson 18</a> More About Recordsets<br>
<a href="http://aspjavascript.com/lesson19.asp">Lesson 19</a> Adding and Updating<br>
<a href="http://aspjavascript.com/lesson20.asp">Lesson 20</a> A Word About Date/Time</p>
 <a href="http://hi.baidu.com/bansi/blog/item/bee9e2cd5644ac540fb34581.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/bansi/blog/category/aspnet%26%2347%3Bjsp%26%2347%3Bphp">aspnet&#47;jsp&#47;php</a>&nbsp;<a href="http://hi.baidu.com/bansi/blog/item/bee9e2cd5644ac540fb34581.html#comment">查看评论</a>]]></description>
        <pubDate>2008-04-28  18:37</pubDate>
        <category><![CDATA[aspnet&#47;jsp&#47;php]]></category>
        <author><![CDATA[笑半死]]></author>
		<guid>http://hi.baidu.com/bansi/blog/item/bee9e2cd5644ac540fb34581.html</guid>
</item>

<item>
        <title><![CDATA[ASP函数返回多个值]]></title>
        <link><![CDATA[http://hi.baidu.com/bansi/blog/item/5f2c839481605a1bd21b70de.html]]></link>
        <description><![CDATA[
		
		<p>今天恰好遇上ASP函数返回多个值，确切点是VB函数返回多个值，因为VB用的比较少，函数都是看着手册写。C#与JS我还算了解，要让一个函数返回多个值，有两种常规的方法：<br>
<br>
<a target="_blank" href="http://hi.baidu.com/bansi/">Bansi分享</a><br>
<br>
1.以连接字符串的方法获取所需要的值。<br>
例：<br>
function returnValue()<br>
a1 = &quot;返回值1&quot;<br>
a2 = &quot;返回值2&quot;<br>
returnValue = a1&amp;a2<br>
end function<br>
需要返回的值a1与a2用连接字符串 &amp; 连接。如果需要单独使用a1或a2再使用分割字符串的函数再处理一次，总之，感觉比较麻烦。如果遇到a1返回值的长度不确定，要分割字符串就无从下手，但也不是完全没办法，这种情况需要再麻烦一点，添加一个分割符号作为标志，便于字符串分割。<br>
<br>
returnValue = a1&amp;&quot;-&quot;&amp;a2 在返回值里带有一个额外的连接符 &ldquo;-&rdquo;，便于字符串函数分割用<br>
<br>
2.以数组方式返回所需要的值。<br>
例：<br>
function returnValue()<br>
dim aryValue(1)<br>
aryValue(0) = &quot;返回值1&quot; <br>
aryValue(1) = &quot;返回值2&quot;<br>
returnValue = aryValue<br>
end function</p>
<p>函数外这样调用<br>
<br>
myData = returnValue()<br>
myData(0)&nbsp;&nbsp;  '调用返回值1<br>
myData(1)&nbsp;&nbsp;&nbsp;  '调用返回值2<br>
<br>
使用数组就感觉方便了很多，相比1就少了字符串分割的步骤。&nbsp;&nbsp;<br>
<br>
网上还介绍了VB里Class方法，感觉也挺方便的，但因为VB不熟，调试起来需要时间。类也懒得看，现在要赶时间就没去捣鼓了，有兴趣的朋友自己上网搜索。恩，今天就把这个方法应用上了，自己弄的ASP2HTML文章管理系统的基本功能也有了，把上一篇文章、下一篇文章的功能也实现了。</p> <a href="http://hi.baidu.com/bansi/blog/item/5f2c839481605a1bd21b70de.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/bansi/blog/category/%BC%BC%C7%C9%CB%D1%BC%AF">技巧搜集</a>&nbsp;<a href="http://hi.baidu.com/bansi/blog/item/5f2c839481605a1bd21b70de.html#comment">查看评论</a>]]></description>
        <pubDate>2008-04-24  10:12</pubDate>
        <category><![CDATA[技巧搜集]]></category>
        <author><![CDATA[笑半死]]></author>
		<guid>http://hi.baidu.com/bansi/blog/item/5f2c839481605a1bd21b70de.html</guid>
</item>


</channel>
</rss>