<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/caolvchong" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/caolvchong" type="application/rss+xml"></fs:self_link><lastBuildDate>Sun, 01 Jun 2008 16:31:21 GMT</lastBuildDate><title>草履虫的BLOG</title><description>记录生活,学习的点点滴滴</description><link>http://cceer.xmu.edu.cn/blog/</link><language>zh-CN</language><copyright>Copyright 2007-2008 草履虫 All Rights Reserved.</copyright><pubDate>Sat, 23 Aug 2008 05:17:05 GMT</pubDate><item><title>提高javascript的速度系列（序）</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965433/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=96</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=96&amp;key=978c6d18</trackback:ping><description>&lt;b&gt;&lt;font color=&quot;Red&quot;&gt;倒腾装了一个防SPAM的插件，把评论开了&lt;/font&gt;&lt;/b&gt;&lt;br/&gt;
---------------------------------------&lt;br/&gt;
这一段要毕业，得折磨自己两个月....这段时间还是会摆弄了javascript的.大致在下面两个方面:

1.javascript的一些性能方面的注意&lt;br/&gt;
2.一些数值分析的javascript的实现

这篇是为了后面分析javascript的性能写的一个序,主要是一个计算javascript函数的时间.一个小函数,还是蛮有意思的
code:
&lt;pre name=&quot;code&quot; class=&quot;js&quot;&gt;
function runTimeCount(func) {
	var para =[];
	if(arguments.length &gt;1) {
		para = Array.prototype.slice.apply(arguments, [1, arguments.length]);
	}
	var startTimer = (new Date()).getTime();
	func.apply(null,para);
	var stopTimer = (new Date()).getTime();
	return stopTimer - startTimer;
}
&lt;/pre&gt;

或者看这里:
&lt;p class=&quot;code&quot;&gt;function runTimeCount(func) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;var para =[];&lt;br/&gt;&amp;nbsp;&amp;nbsp;if(arguments.length &amp;gt;1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;para = Array.prototype.slice.apply(arguments, [1, arguments.length]);&lt;br/&gt;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;var startTimer = (new Date()).getTime();&lt;br/&gt;&amp;nbsp;&amp;nbsp;func.apply(null,para);&lt;br/&gt;&amp;nbsp;&amp;nbsp;var stopTimer = (new Date()).getTime();&lt;br/&gt;&amp;nbsp;&amp;nbsp;return stopTimer - startTimer;&lt;br/&gt;}&lt;br/&gt;&lt;/p&gt;</description><category>JavaScript之旅</category><pubDate>Mon, 02 Jun 2008 00:31:21 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/speedupforjavascript.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/speedupforjavascript.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/speedupforjavascript.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965433/5164678</fs:itemid></item><item><title>拉格朗日插值算法</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965434/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=95</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=95&amp;key=45a46a3c</trackback:ping><description>拉格朗日插值:根据已知的一些数据,估算一些未知解的一种插值算法&lt;br/&gt;
    算法介绍:继续找本书看看,比如数值分析...-_-#&lt;br/&gt;
    &lt;font color=&quot;Red&quot;&gt;&lt;b&gt;有空会继续其他的插值javascript算法实现.评论被关闭,有问题直接email吧&lt;br/&gt;&lt;/b&gt;&lt;/font&gt;
    &lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;演示:&lt;/font&gt;&lt;/b&gt;:&lt;br/&gt;
         预览地址:&lt;a href=&quot;http://cceer.xmu.edu.cn/blog/upload/shuzhifenxi/LagrangeInsert.htm&quot; target=&quot;_blank&quot;&gt;Demo&lt;/a&gt;&lt;br/&gt;
        &lt;textarea class=&quot;code&quot; name=&quot;code590&quot; id=&quot;code590&quot; rows=&quot;10&quot; cols=&quot;50&quot;&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&amp;gt;
&amp;lt;html&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;head&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;title&amp;gt;拉格朗日插值&amp;lt;/title&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function getPrecision(x){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return x.toString().split(&quot;.&quot;)[1].length;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Number.prototype.floatFormat = function(n){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return Math.round(this * Math.pow(10, n)) / Math.pow(10, n);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * foregone:一个2维数组,比如:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &amp;nbsp;&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[1,2],
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[2,4],
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[4,9]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &amp;nbsp;&amp;nbsp;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 表示已知了三个结果,x=1,y=2;x=2,y=4;x=4,y=9
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * x:目的自变量
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 返回值:result,插值估算出的结果
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function Lagrange(foregone,x){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var xIndex = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var yIndex = 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var n=foregone.length;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//获取精度
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var percision = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(var i =0,j=foregone.length,p;i&amp;lt;j;i++){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;p = getPrecision(foregone[i][yIndex]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(p &amp;gt; percision) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;percision = p;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(var i=0,w=1;i&amp;lt;n;i++){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;w *= (x - foregone[i][xIndex]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(var k=0,xk,yk,result=0;k&amp;lt;n;k++){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xk = foregone[k][xIndex];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yk = foregone[k][yIndex];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(var j=0,wk=1;j&amp;lt;n;j++){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(j == k){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wk *= (xk - foregone[j][xIndex]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result += yk * w /((x - xk)*wk);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return result.floatFormat(percision);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 已知 sin0.32 = 0.314567; sin0.34 = 0.333487; sin0.36 = 0.352274
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 求 sin0.3367
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var foregone = [[0.32,0.314567],[0.34,0.333487]];&amp;nbsp;&amp;nbsp;//线性插值
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var foregone2 = [[0.32,0.314567],[0.34,0.333487],[0.36,0.352274]];&amp;nbsp;&amp;nbsp;//抛物插值
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var x = 0.3367; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(Lagrange(foregone,x));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(Lagrange(foregone2,x));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/script&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/head&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;body&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type=&quot;button&quot; value=&quot;运行代码&quot; onclick=&quot;runCode('code590')&quot;&gt; &lt;input type=&quot;button&quot; value=&quot;复制代码&quot; onclick=&quot;copycode('code590')&quot;&gt; &lt;input type=&quot;button&quot; value=&quot;另存代码&quot; onclick=&quot;saveCode('code590')&quot;&gt; 提示：您可以先修改部分代码再运行
    --------------------------------------------------------------------&lt;br/&gt;
    &lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;核心代码&lt;/font&gt;&lt;/b&gt;:&lt;br/&gt;
&lt;pre name=&quot;code&quot; class=&quot;js&quot;&gt;
/*===========================================================
 * 项目:拉格朗日插值算法实现(javascript)
 * 作者:草履虫
 * 时间:2008.5.24
 * 联系:caolvchong@gmail.com
 * 主页:http://cceer.xmu.edu.cn/blog/
 *===========================================================*/
&lt;script type=&quot;text/javascript&quot;&gt;
	function getPrecision(x){
		return x.toString().split(&quot;.&quot;)[1].length;	
	}
	
	Number.prototype.floatFormat = function(n){
		return Math.round(this * Math.pow(10, n)) / Math.pow(10, n);
	}
	/*
	 * foregone:一个2维数组,比如:
	 * 	[
	 * 		[1,2],
	 * 		[2,4],
	 * 		[4,9]
	 * 	]
	 * 表示已知了三个结果,x=1,y=2;x=2,y=4;x=4,y=9
	 * x:目的自变量
	 * 
	 * 返回值:result,插值估算出的结果
	 */
	function Lagrange(foregone,x){
		var xIndex = 0;
		var yIndex = 1;
		var n=foregone.length;
		
		//获取精度
		var percision = 0;
		for(var i =0,j=foregone.length,p;i&lt;j;i++){
			p = getPrecision(foregone[i][yIndex]);
			if(p &gt; percision) {
				percision = p;
		}
		}
		
		for(var i=0,w=1;i&lt;n;i++){
			w *= (x - foregone[i][xIndex]);
		}
		for(var k=0,xk,yk,result=0;k&lt;n;k++){
			xk = foregone[k][xIndex];
			yk = foregone[k][yIndex];
			for(var j=0,wk=1;j&lt;n;j++){
				if(j == k){
					continue;
				}
				wk *= (xk - foregone[j][xIndex]);
			}
			result += yk * w /((x - xk)*wk);
		}
		return result.floatFormat(percision);
	}
	
	/*
	 * 已知 sin0.32 = 0.314567; sin0.34 = 0.333487; sin0.36 = 0.352274
	 * 求 sin0.3367
	 */
	//var foregone = [[0.32,0.314567],[0.34,0.333487]];	//线性插值
	//var foregone2 = [[0.32,0.314567],[0.34,0.333487],[0.36,0.352274]];	//抛物插值
	//var x = 0.3367; 
	//alert(Lagrange(foregone,x));
	//alert(Lagrange(foregone2,x));
&lt;/script&gt;
&lt;/pre&gt;</description><category>算法之旅</category><pubDate>Sat, 24 May 2008 14:24:10 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/LagrangeInsert.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/LagrangeInsert.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/LagrangeInsert.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965434/5164678</fs:itemid></item><item><title>SOR算法</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965435/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=94</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=94&amp;key=bd1b18ca</trackback:ping><description>SOR算法:用来解大型线性稀疏线性方程组.是高斯-塞得尔算法的一种修正算法&lt;br/&gt;
    算法介绍:找本书看看,比如数值分析...-_-#&lt;br/&gt;
    &lt;font color=&quot;Red&quot;&gt;&lt;b&gt;类似的还可以实现 高斯-塞得尔迭代算法,雅可比迭代算法等&lt;br/&gt;
    站点评论被我关闭了,时间太少,无暇管理,垃圾评论懒得删除了.有问题直接email吧&lt;br/&gt;&lt;/b&gt;&lt;/font&gt;
    --------------------------------------------------------------------&lt;br/&gt;
    &lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;演示:&lt;/font&gt;&lt;/b&gt;:&lt;br/&gt;
         预览地址:&lt;a href=&quot;http://cceer.xmu.edu.cn/blog/upload/shuzhifenxi/sor.htm&quot; target=&quot;_blank&quot;&gt;Demo&lt;/a&gt;&lt;br/&gt;
    --------------------------------------------------------------------&lt;br/&gt;
    &lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;核心代码&lt;/font&gt;&lt;/b&gt;:&lt;br/&gt;
&lt;pre name=&quot;code&quot; class=&quot;js&quot;&gt;
/*===========================================================
 * 项目:SOR算法实现(javascript)
 * 作者:草履虫
 * 时间:2008.5.11
 * 联系:caolvchong@gmail.com
 * 主页:http://cceer.xmu.edu.cn/blog/
 *===========================================================*/
&lt;script type=&quot;text/javascript&quot;&gt;
	function making(A,b,w,E,times){
		//A:2维数组,用来存放x前面的系数矩阵
		//b:1维数组,用来存放常数项	
		//w 松弛因子		
		//E 误差限	
		//times 最多运算次数
		var len = A.length;	//x的个数
		var x = [];	//1维数组,用来存放计算出来的x值
		var e = 1;	//误差,初始化为1		
		var n = 1;	//第几次运算
		var tx = [];//临时数组,用来存储上一次的x值,计算误差	
		//初始化,给初始解全为0
		for(var i = 0;i&lt;len;i++){
			x[i] = 0;
		}	
		while(n &lt;= times) {	//控制最多计算次数为times
			var flag = 0;	//用来标志误差是否已经在允许范围内
			for(i=0;i&lt;len;i++) {
				var sum = 0;
				for(var j = 0;j&lt;A[i].length;j++){
					sum += A[i][j] * x[j];
					if(i == j){
						var t = A[i][j];
					}
				}
				sum = w * (b[i] - sum) / t;
				tx[i] = x[i];	//保存一下,用来计算误差
				x[i] = x[i] + sum;
			}
			for(var k = 0;k&lt;len;k++){
				if(Math.abs(tx[k] - x[k]) &lt;= E ){
					flag++;
				}
			}

			//===========输出
			document.write(&quot;第&quot; + n + &quot;次运算,结果如下:&lt;br/&gt;&quot;);
			n++;
			for(var s = 0; s &lt; len ; s++){
				document.write(&quot;x&quot; + (s+1) + &quot;=&quot; +x[s] + &quot;,误差大小:&quot; + Math.abs(x[s] - tx[s]) + &quot;&lt;br/&gt;&quot;);
			}
			document.write(&quot;&lt;br/&gt;-------------------------------&lt;br/&gt;&quot;);
			//===========

			if(flag == 4) {	//是否满足误差限
				break;
			}
		}
	}
		
	/*计算一下线性方程组:
	 * -4x1 + x2 + x3 + x4 = 1
	 * x1 - 4x2 + x3 + x4 = 1
	 * x1 + x2 - 4x3 + x4 = 1
	 * x1 + x2 + x3 - 4x4 = 1 
	 * 松弛因子w取1.3
	 * 误差限取10的-5次方(10e-6)
	 * 做多运算次数 1000 次
	 */
        //调用
	//making([[-4,1,1,1],[1,-4,1,1],[1,1,-4,1],[1,1,1,-4]],[1,1,1,1],1.3,10e-6,1000);
&lt;/script&gt;
&lt;/pre&gt;</description><category>算法之旅</category><pubDate>Mon, 12 May 2008 08:21:43 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/sor.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/sor.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/sor.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965435/5164678</fs:itemid></item><item><title>常见排序算法的javascript实现</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965436/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=93</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=93&amp;key=452688d4</trackback:ping><description>前段考试,很久没有心思写blog,一些东西扔在了Wiki上,也没怎么打理.考完了,累得狠,典型的教育反面教材......&lt;br/&gt;
    天亮后就准备回家了,可能blog又要很久没有东西,临走前丢点东西在这里吧.&lt;br/&gt;
    --------------------------------------------------------------------&lt;br/&gt;
    &lt;b&gt;&lt;font color=&quot;Red&quot;&gt;常见的几种排序的实现(javascript版本)&lt;/font&gt;&lt;/b&gt;&lt;br/&gt;
    &lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;说明:&lt;/font&gt;&lt;/b&gt;:&lt;br/&gt;
         1.代码基本上是自己写的,堆排序和二路归并参考了网上的一些资料&lt;br/&gt;
         2.转载请注明出处&lt;br/&gt;
         3.&lt;font color=&quot;Red&quot;&gt;代码以Demo的源代码为准,这里贴出的代码有可能因为高亮插件的一些原因而出现错误&lt;/font&gt;&lt;br/&gt;
    --------------------------------------------------------------------&lt;br/&gt;
    &lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;演示:&lt;/font&gt;&lt;/b&gt;:&lt;br/&gt;
         1.预览地址:&lt;a href=&quot;http://cceer.xmu.edu.cn/blog/upload/sort/sort.htm&quot; target=&quot;_blank&quot;&gt;Demo&lt;/a&gt;&lt;br/&gt;
         2.效果图:&lt;img onload=&quot;ResizeImage(this,520)&quot; src=&quot;http://cceer.xmu.edu.cn/blog/upload/sort.jpg&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;br/&gt;
    --------------------------------------------------------------------&lt;br/&gt;
    &lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;核心代码&lt;/font&gt;&lt;/b&gt;:&lt;br/&gt;
&lt;pre name=&quot;code&quot; class=&quot;js&quot;&gt;
/*===========================================================
 * 项目:常见的几种排序的实现(javascript)
 * 作者:草履虫
 * 时间:2008.1.3 -- 2008.1.4
 * 联系:caolvchong@gmail.com
 * 主页:http://cceer.xmu.edu.cn/blog/
 *===========================================================*/
/*+++++++++++++++++++++++++++++++++++++++++++++++
 *  插入排序
 * 	---直接插入排序
 * 	---折半插入排序
 * 	---shell排序
 *+++++++++++++++++++++++++++++++++++++++++++++++*/
	Array.prototype.direct_insert_sort = function(){//直接插入排序
		var i,j = this.length,k,now;
		for(i=1;i&lt;j;i++){
			now = this[i];
			for(k=i-1;(this[k] &gt; now)&amp;&amp; k&gt;=0;k--){
				this[k+1] = this[k];
			}
			this[k+1] = now;
		}
	}
	Array.prototype.b_insert_sort = function(){//折半插入排序
		var i,j = this.length,k,now,low,high,middle;
		for(i=1;i&lt;j;i++){
			now = this[i];
			low = 0;
			high = i-1;
			while(low &lt;= high){
				middle = (low + high)&gt;&gt;1;
				if(now &lt; this[middle]){
					high = middle - 1;
				} else{
					low = middle + 1;
				}
			}
			for(k= i - 1;k &gt;= high + 1;k--){
				this[k + 1] = this[k];
			}
			this[high + 1] = now;
		}
	}
	Array.prototype.shell = function(){//shell排序
		var step,i,j,k,s = this.length,value;
		for (step = s &gt;&gt; 1; step &gt; 0; step &gt;&gt;= 1){
			for (i = 0; i &lt; step; i++){
				for (j = i + step; j &lt; s; j += step){
					k = j;
					value = this[j];
					while (k &gt;= step &amp;&amp; this[k - step] &gt; value){//这里做的实际是直接插入排序
						this[k] = this[k - step];
						k -= step;
					}
					this[k] = value;
				}
			}
		}
	}		
/*+++++++++++++++++++++++++++++++++++++++++++++++
 * 快速排序
 * ---冒泡排序
 * ---快速排序
 *+++++++++++++++++++++++++++++++++++++++++++++++*/
	Array.prototype.bubble = function(){//冒泡排序
		var i,j,k=this.length,t;
		for(i=k-1;i&gt;0;i--){
			for(j=0;j&lt;i;j++){
				if(this[j] &gt; this[j+1]){
					t = this[j];
					this[j] = this[j+1];
					this[j+1] = t;
				}
			}
		}
	}
	Array.prototype.ex_bubble = function(){
		var i,j,k=this.length,flag,t;
		for(i=k-1;i&gt;0;i--){
			for(j=0;j&lt;i;j++){
				if(this[j] &gt; this[j+1]){
					t = this[j];
					this[j] = this[j+1];
					this[j+1] = t;
					flag = 1;
				}
			}
			if(flag == 0){
				return;
			}
		}
	}
	Array.prototype.quick_sort = function(left,right){//快速排序
		var i,j,t,key,m;
		if (left == null){
			left = 0;
		}
		if (right == null){
			right = this.length - 1;
		}
		if (left &gt;= right){
			return;
		}
		key = this[left];
		i = left+1;
		j = right;
		do{
			while(this[i] &lt;= key &amp;&amp; i&lt;=right){i++;}
			while(this[j] &gt;= key &amp;&amp; j &gt; left){j--;}
			if(i &lt; j){
				t = this[i];
				this[i] = this[j];
				this[j] = t;
			}
		}while(i&lt;j);
		t = key;
		this[left] = this[j];
		this[j] = key;
		this.quick_sort(left,j-1);
		this.quick_sort(j+1,right);
	}
/*+++++++++++++++++++++++++++++++++++++++++++++++
 * 选择排序
 * ---简单选择排序
 * ---堆排序
 *+++++++++++++++++++++++++++++++++++++++++++++++*/
	Array.prototype.select_sort = function(){//简单选择排序
		var i,j,k = this.length,p=k-1,n,t,min;
		for(i=0;i&lt;p;i++){
			t = i;
			for(j=i+1;j&lt;k;j++){
				if(this[j] &lt; this[t]){
					t = j;
				}
			}
			if(t != i){
				n = this[i];
				this[i] = this[t];
				this[t] = n;
			}
		}
	}
	Array.prototype.heap_sort = function(){//堆排序
		var i,j,k,t,s=this.length;
        for(i=1;i&lt;s;i++){
            for(j = i, k = (j - 1) &gt;&gt; 1; k &gt;= 0; j = k, k = (k - 1) &gt;&gt; 1){
                if (this[k] &gt;= this[j]) break;
                t = this[j];
				this[j] = this[k];
				this[k] = t;
            }
        }
        for (i = s - 1; i &gt; 0; --i){
            t = this[0];
			this[0] = this[i];
			this[i] = t;
            for (j = 0, k = (j + 1) &lt;&lt; 1; k &lt;= i; j = k, k = (k + 1) &lt;&lt; 1){
                if (k == i || this[k] &lt; this[k - 1]){
					--k;
				}
                if (this[k] &lt;= this[j]){
					break;
				}
				t = this[j];
				this[j] = this[k];
				this[k] = t;
            }
        }
	}
/*+++++++++++++++++++++++++++++++++++++++++++++++
 * 归并排序
 * ---2-路归并排序
 *+++++++++++++++++++++++++++++++++++++++++++++++*/
	Array.prototype.merge_sort = function(left,right,arr_space){//2-路归并排序
		var i,j,k,middle;
		if (left == null){
			left = 0;
		}
		if(right == null){
			right = this.length - 1;
		}
		if(arr_space == null){
			arr_space = new Array(this.length);
		}
		if(left &gt;= right){
			return;
		}
		middle = (left + right) &gt;&gt; 1;	
		this.merge_sort(left,middle,arr_space);
		this.merge_sort(middle+1,right,arr_space);	
		for(i=left,j=left,k=middle+1;i&lt;=right;i++){
			arr_space[i] = this[(k&gt;right || j&lt;=middle &amp;&amp; this[j]&lt;this[k])?j++:k++];
		}
		for(i=left;i&lt;=right;i++){
			this[i] = arr_space[i];
		}
	}
&lt;/pre&gt;</description><category>JavaScript之旅</category><pubDate>Mon, 21 Jan 2008 01:33:48 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/sort_js.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/sort_js.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/sort_js.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965436/5164678</fs:itemid></item><item><title>求某数以内的所有质数</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965437/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=92</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=92&amp;key=80fc9604</trackback:ping><description>任意给出一个数,求该数以内的所有质数.(使用筛选法做的)&lt;br/&gt;
如果有更好的方法,不妨指教.&lt;br/&gt;
核心代码:&lt;br/&gt;
&lt;pre name=&quot;code&quot; class=&quot;js&quot;&gt;
//代码请以运行框内为主,这里可能显示有错
 function prime(num){
    var i,k;
    var arr = [];
    for( i=2; i&lt;=num; i++) {
        arr.push(i);
    }
    for( i=0; i&lt;arr.length; i++) {  
        for( k=i+1; k &lt; arr.length; k++) {  
            if( arr[k]%arr[i]==0){
                arr.splice(k,1);
            }
        }
    }
    return arr;
    }

&lt;/pre&gt;&lt;br/&gt;

运行:&lt;br/&gt;
&lt;textarea class=&quot;code&quot; name=&quot;code390&quot; id=&quot;code390&quot; rows=&quot;10&quot; cols=&quot;50&quot;&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;function prime(num){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var i,k;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var arr = [];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(i=2; i&amp;lt;=num; i++){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arr.push(i);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(i=0; i&amp;lt;arr.length; i++){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(k=i+1; k&amp;lt;arr.length; k++){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(arr[k]%arr[i]==0){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arr.splice(k,1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return arr;
&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;document.write(&quot;500以内的所有质数是:&quot;+prime(500));
&amp;lt;/script&amp;gt;
&lt;/textarea&gt;&lt;br /&gt;&lt;input type=&quot;button&quot; value=&quot;运行代码&quot; onclick=&quot;runCode('code390')&quot;&gt; &lt;input type=&quot;button&quot; value=&quot;复制代码&quot; onclick=&quot;copycode('code390')&quot;&gt; &lt;input type=&quot;button&quot; value=&quot;另存代码&quot; onclick=&quot;saveCode('code390')&quot;&gt; 提示：您可以先修改部分代码再运行</description><category>算法之旅</category><pubDate>Thu, 20 Dec 2007 01:39:35 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/prime.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/prime.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/prime.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965437/5164678</fs:itemid></item><item><title>使用javascript类实现的可拖动层的z-index设置</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965438/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=91</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=91&amp;key=d6015f3e</trackback:ping><description>给蓝色一会员的回帖,给blog充数^_^&lt;br/&gt;&lt;br/&gt;
原有功能:拖拽,未实现z-index&lt;br/&gt;&lt;br/&gt;
补充功能:实现z-index&lt;br/&gt;&lt;br/&gt;
核心代码:&lt;br/&gt;
&lt;pre name=&quot;code&quot; class=&quot;js&quot;&gt;
//代码请以运行框内为主,这里可能显示有错
/* --------------------------------------------------------------
 * 程序名:拖拽区域块
 * 修改者:草履虫
 * email:caolvchong@gmail.com
 * 主页:http://cceer.xmu.edu.cn/blog/
 * 原始来源:http://bbs.blueidea.com/thread-2817125-1-1.html
 * 增加功能:拖拽后的z-index设置
 * Plus:有疑问或者建议请联系email
 * --------------------------------------------------------------
 */
function move(id){
	this.node = document.getElementById(id);
	this.name = id;
	this.node.style.cursor = &quot;move&quot;;
	this.zindex =  parseInt(this.node.getAttribute(&quot;id&quot;).replace(/\D/g,&quot;&quot;));
	this.node.style.zIndex = this.zindex;
	this.node.me = this;	
	this.node.onmousedown = this.mouse_down;
}
move.prototype.mouse_down = function(e){
	e = window.event?window.event:e;
	this.me.node.style.zIndex += 10000;// ---&gt;被修改了,原来100,现在10000
	this.me.node.sub_x = e.clientX - this.me.node.offsetLeft;
	this.me.node.sub_y = e.clientY - this.me.node.offsetTop;
	this.me.node.onmousemove = this.me.mouse_move;
	this.me.node.onmouseup = this.me.mouse_up;
}
move.prototype.mouse_move = function(e){
	e = window.event?window.event:e;
	this.me.node.style.cursor = &quot;pointer&quot;;
	this.me.node.style.left = e.clientX - this.me.node.sub_x + &quot;px&quot;;
	this.me.node.style.top = e.clientY - this.me.node.sub_y + &quot;px&quot;;
	this.me.node.onmouseup = this.me.mouse_up;
}
move.prototype.mouse_up = function(){
	this.me.node.onmousemove = &quot;&quot;;
	this.me.node.style.cursor = &quot;move&quot;;
	this.me.node.style.zIndex = this.me.zindex;	//还原被增加的z-index
	var z_index = this.me.zindex ;	//获取当前z-index
	for(var i = 0; i &lt; document.getElementsByTagName(&quot;div&quot;).length; i++){	//获取最大z-index
		if(z_index &lt; document.getElementsByTagName(&quot;div&quot;)[i].style.zIndex){
			z_index = parseInt(document.getElementsByTagName(&quot;div&quot;)[i].style.zIndex);
		}
	}
	this.me.node.style.zIndex = z_index + 1;	//移动后的z-index,而不是还原
}
&lt;/pre&gt;&lt;br/&gt;
使用:
&lt;pre name=&quot;code&quot; class=&quot;js&quot;&gt;
window.onload = function(){
	new move(&quot;move1&quot;); //你要拖拽的块的id,必须move开头,后面使用数字
	new move(&quot;move2&quot;);
	new move(&quot;move3&quot;);
}
&lt;/pre&gt;
运行:
&lt;textarea class=&quot;code&quot; name=&quot;code740&quot; id=&quot;code740&quot; rows=&quot;10&quot; cols=&quot;50&quot;&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&amp;gt;
&amp;lt;html&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;head&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;title&amp;gt;草履虫 改进版*拖拽效果&amp;lt;/title&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;style type=&quot;text/css&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.box{position:absolute;width:300px;height:300px;border:1px solid #ddd;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#move1{background:#f00;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#move2{left:100px;top:100px;background:#0f0;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#move3{left:200px;top:200px;background:#00f;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/style&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// &amp;lt;![CDATA[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*--------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 程序名:拖拽区域块
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 修改者:草履虫
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * email:caolvchong@gmail.com
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 主页:http://cceer.xmu.edu.cn/blog/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 原始来源:http://bbs.blueidea.com/thread-2817125-1-1.html
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 增加功能:拖拽后的z-index设置
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Plus:有疑问或者建议请联系email
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * --------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function move(id){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.node = document.getElementById(id);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.name = id;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.node.style.cursor = &quot;move&quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.zindex =  parseInt(this.node.getAttribute(&quot;id&quot;).replace(/\D/g,&quot;&quot;));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.node.style.zIndex = this.zindex;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.node.me = this;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.node.onmousedown = this.mouse_down;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;move.prototype.mouse_down = function(e){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e = window.event?window.event:e;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.style.zIndex += 10000;// ---&amp;gt;被修改了,原来100,现在10000
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.sub_x = e.clientX - this.me.node.offsetLeft;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.sub_y = e.clientY - this.me.node.offsetTop;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.onmousemove = this.me.mouse_move;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.onmouseup = this.me.mouse_up;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;move.prototype.mouse_move = function(e){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e = window.event?window.event:e;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.style.cursor = &quot;pointer&quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.style.left = e.clientX - this.me.node.sub_x + &quot;px&quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.style.top = e.clientY - this.me.node.sub_y + &quot;px&quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.onmouseup = this.me.mouse_up;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;move.prototype.mouse_up = function(){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.onmousemove = &quot;&quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.style.cursor = &quot;move&quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.style.zIndex = this.me.zindex;&amp;nbsp;&amp;nbsp;//还原被增加的z-index
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var z_index = this.me.zindex ;&amp;nbsp;&amp;nbsp;//获取当前z-index
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(var i = 0; i &amp;lt; document.getElementsByTagName(&quot;div&quot;).length; i++){&amp;nbsp;&amp;nbsp;//获取最大z-index
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(z_index &amp;lt; document.getElementsByTagName(&quot;div&quot;)[i].style.zIndex){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;z_index = parseInt(document.getElementsByTagName(&quot;div&quot;)[i].style.zIndex);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.me.node.style.zIndex = z_index + 1;&amp;nbsp;&amp;nbsp;//移动后的z-index,而不是还原
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;window.onload = function(){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new move(&quot;move1&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new move(&quot;move2&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new move(&quot;move3&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ]]&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/script&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/head&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;body&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div id=&quot;move1&quot; class=&quot;box&quot;&amp;gt;1&amp;lt;/div&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div id=&quot;move2&quot; class=&quot;box&quot;&amp;gt;2&amp;lt;/div&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div id=&quot;move3&quot; class=&quot;box&quot;&amp;gt;0&amp;lt;/div&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/textarea&gt;&lt;br /&gt;&lt;input type=&quot;button&quot; value=&quot;运行代码&quot; onclick=&quot;runCode('code740')&quot;&gt; &lt;input type=&quot;button&quot; value=&quot;复制代码&quot; onclick=&quot;copycode('code740')&quot;&gt; &lt;input type=&quot;button&quot; value=&quot;另存代码&quot; onclick=&quot;saveCode('code740')&quot;&gt; 提示：您可以先修改部分代码再运行</description><category>JavaScript之旅</category><pubDate>Wed, 19 Dec 2007 01:28:52 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/drap_class.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/drap_class.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/drap_class.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965438/5164678</fs:itemid></item><item><title>div背景随机改变(blueidea)</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965439/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=90</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=90&amp;key=e3c7b8af</trackback:ping><description>发现自己的blog写的越来越多是javascript的内容了,确实是一门令人着迷的语言.&lt;br/&gt;
老久没有发文了,贴些自己在blueidea的回帖,一是做记录,二权当充数了.&lt;br/&gt;

功能:让自己设定的div每次载入时背景随机&lt;br/&gt;
核心代码:
&lt;pre name=&quot;code&quot; class=&quot;js&quot;&gt;
//代码请以运行框内为主,这里可能显示有错
var chang_img = {
	get_node: function(id){
		return document.getElementById(id);
	},
	prepare_img: function(){
		return [&quot;http://bbs.blueidea.com/images/blue/logo.gif&quot;,&quot;http://mail.google.com/mail/help/images/logo.gif&quot;,&quot;http://www.baidu.com/img/logo-yy.gif&quot;,&quot;http://www.google.cn/intl/zh-CN/images/logo_cn.gif&quot;];
	},
	bg: function(id){
		var img_num = this.prepare_img().length;
		var i = Math.floor(img_num * Math.random(1));
		this.get_node(id).style.backgroundImage = 'url(' + this.prepare_img()[i] +')';
	},
}
&lt;/pre&gt;

具体应用使用:(估计没啥用,权当解闷了)
&lt;pre name=&quot;code&quot; class=&quot;js&quot;&gt;
window.onload = function(){
	chang_img.bg(&quot;test&quot;);
}
&lt;/pre&gt;

运行:
&lt;textarea class=&quot;code&quot; name=&quot;code820&quot; id=&quot;code820&quot; rows=&quot;10&quot; cols=&quot;50&quot;&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&amp;gt;
&amp;lt;html&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;head&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;title&amp;gt;草履虫 载入设置区域块随机背景&amp;lt;/title&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;style type=&quot;text/css&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.test{width:400px;height:200px;float:left;margin:10px;border:1px solid #aaa;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/style&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var chang_img = {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;get_node: function(id){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return document.getElementById(id);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;prepare_img: function(){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return [&quot;http://bbs.blueidea.com/images/blue/logo.gif&quot;,&quot;http://mail.google.com/mail/help/images/logo.gif&quot;,&quot;http://www.baidu.com/img/logo-yy.gif&quot;,&quot;http://www.google.cn/intl/zh-CN/images/logo_cn.gif&quot;];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bg: function(id){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var img_num = this.prepare_img().length;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var i = Math.floor(img_num * Math.random(1));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.get_node(id).style.backgroundImage = 'url(' + this.prepare_img()[i] +')';
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s:function(){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(this.prepare_img[1]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;window.onload = function(){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;chang_img.bg(&quot;test&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/script&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/head&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;body&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div class=&quot;test&quot; id=&quot;test&quot;&amp;gt;我背景会随机变&amp;lt;/div&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div class=&quot;test&quot;&amp;gt;我不变色&amp;lt;/div&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/textarea&gt;&lt;br /&gt;&lt;input type=&quot;button&quot; value=&quot;运行代码&quot; onclick=&quot;runCode('code820')&quot;&gt; &lt;input type=&quot;button&quot; value=&quot;复制代码&quot; onclick=&quot;copycode('code820')&quot;&gt; &lt;input type=&quot;button&quot; value=&quot;另存代码&quot; onclick=&quot;saveCode('code820')&quot;&gt; 提示：您可以先修改部分代码再运行</description><category>JavaScript之旅</category><pubDate>Tue, 18 Dec 2007 01:16:21 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/div_change_background.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/div_change_background.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/div_change_background.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965439/5164678</fs:itemid></item><item><title>区域块伸缩效果实现(toggle效果)</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965440/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=89</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=89&amp;key=f66d9afd</trackback:ping><description>&lt;p class=&quot;code&quot;&gt;&lt;font color=&quot;Blue&quot;&gt;项目&lt;/font&gt;:区域块伸缩效果实现(toggle效果,javascript类实现)&lt;br/&gt;&lt;font color=&quot;Green&quot;&gt;作者&lt;/font&gt;:草履虫&lt;br/&gt;&lt;font color=&quot;Blue&quot;&gt;邮件&lt;/font&gt;:caolvchong@gmail.com&lt;br/&gt;&lt;font color=&quot;Blue&quot;&gt;开发平台&lt;/font&gt;:windows server 2003&lt;br/&gt;&lt;font color=&quot;Blue&quot;&gt;测试平台&lt;/font&gt;:Firefox 2.0.11,IE6,IE7,基于IE7核心的Maxthon,GreenBrowser&lt;br/&gt;&lt;font color=&quot;Blue&quot;&gt;开发工具&lt;/font&gt;:Aptana&lt;br/&gt;&lt;font color=&quot;Blue&quot;&gt;时间&lt;/font&gt;:2007-12-12&lt;br/&gt;&lt;font color=&quot;Blue&quot;&gt;首发&lt;/font&gt;:http://cceer.xmu.edu.cn/blog/post/toggle.html&lt;br/&gt;&lt;font color=&quot;Red&quot;&gt;版权说明&lt;/font&gt;:转载请务必注明上面这段话和出处&lt;br/&gt;&lt;/p&gt;
&lt;p class=&quot;code&quot;&gt;&lt;font color=&quot;Blue&quot;&gt;项目描述&lt;/font&gt;:通过javascript类实现网页区域块伸缩效果的实现.&lt;br/&gt;&lt;font color=&quot;Blue&quot;&gt;调用操作&lt;/font&gt;:&lt;br/&gt;&amp;nbsp;&amp;nbsp;引用js文件,加入到你需要的网页.(当然,你完全可以使用jQuery,它也有toggle)&lt;br/&gt;&amp;nbsp;&amp;nbsp;在页面载入后(使用window.onload),调用类.例子如下:&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id为a的节点要控制id为b的节点.点击a,如果b为关闭则打开,如果b为打开则关闭&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color=&quot;Green&quot;&gt;window.onload = function(){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var t = new _toggle($.id(&quot;b&quot;));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.id(&quot;a&quot;).onclick = function(){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t.toggle();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;对于多个节点类似处理&lt;br/&gt;&lt;font color=&quot;Blue&quot;&gt;一些特点&lt;/font&gt;:&lt;br/&gt;&amp;nbsp;&amp;nbsp;1.支持区域块高度未知情况(比如div高度自适应)&lt;br/&gt;&amp;nbsp;&amp;nbsp;2.支持区域块默认关闭情况(比如div的display开始为none)&lt;br/&gt;&amp;nbsp;&amp;nbsp;3.速度级别可以自定义&lt;br/&gt;&amp;nbsp;&amp;nbsp;4.支持外部css(当然包括内部css)&lt;br/&gt;&amp;nbsp;&amp;nbsp;5.你来帮找找 ^_^&lt;br/&gt;&lt;font color=&quot;Red&quot;&gt;bug汇报&lt;/font&gt;:&lt;br/&gt;&amp;nbsp;&amp;nbsp;请联系我的email:caolvchong@gmail.com&lt;br/&gt;&lt;/p&gt;
&lt;font color=&quot;Red&quot;&gt;下载&lt;/font&gt;:&lt;a href=&quot;http://cceer.xmu.edu.cn/upload/toggle.rar&quot;&gt;toggle.rar&lt;/a&gt; 或者 &lt;a href=&quot;http://finish.3322.org/toggle/toggle.rar&quot;&gt;toggle.rar&lt;/a&gt;&lt;br/&gt;
&lt;font color=&quot;Red&quot;&gt;演示&lt;/font&gt;:&lt;a href=&quot;http://finish.3322.org/toggle/index.html&quot;&gt;http://finish.3322.org/toggle/index.html&lt;/a&gt;&lt;br/&gt;
&lt;img onload=&quot;ResizeImage(this,520)&quot; src=&quot;http://cceer.xmu.edu.cn/blog/upload/toggle.jpg&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;br/&gt;
核心代码:toggle.js(代码以下载包为准)&lt;br/&gt;
&lt;pre name=&quot;code&quot; class=&quot;js&quot;&gt;
/*------------------------------------------------
 * 作者:草履虫
 * email:caolvchong@gmail.com
 * Version:toggle 1.0 ^_^
 * 版权:使用请保留这段信息
 * 时间:2007年12月12日
 * -----------------------------------------------
 */
var $ ={
	style:function(node){
		return node.currentStyle || document.defaultView.getComputedStyle(node,null) || node.style;
	},
	height:function(node){
		return parseInt($.style(node).height) || parseInt(node.clientHeight);
	},
	id:function(node){
		return document.getElementById(node);
	}
}
function _toggle(node,speed){
	this.node = node;
	switch(speed){
		case &quot;fast&quot;:
			this.speed = 10;
			break;
		case &quot;normal&quot;:
			this.speed = 5;
			break;
		case &quot;slow&quot;:
			this.speed = 2;
			break;
		default:
			this.speed =5;
	}
	this.run = 1;
	this.max_height = $.height(this.node);
	this.node.style.height = this.max_height;
	this.display = $.style(this.node).display;
	this.node.style.overflow = &quot;hidden&quot;;
	if(this.max_height &lt;=0 || this.display == &quot;none&quot;){
		this.flag = 1;
	}else{
		this.flag = -1;
	}
}
_toggle.prototype.up_down = function(){
	if(this.node.style.display == &quot;none&quot;){
		this.node.style.display = &quot;block&quot;;
		this.node.style.height =&quot;0px&quot;;
	}
	this.box_height = parseInt($.style(this.node).height);
	this.box_height -= this.speed * this.flag;
	if(this.box_height &gt; this.max_height){
		window.clearInterval(this.t);
		this.box_height = this.max_height;
		this.run =1;
	}
	if(this.box_height &lt;0){
		window.clearInterval(this.t);
		this.box_height = 0;
		this.node.style.display =&quot;none&quot;;
		this.run =1;
	}
	this.node.style.height = this.box_height + &quot;px&quot;;
}

_toggle.prototype.toggle = function(){
	var temp = this;
	if(this.run == 1){
		this.flag *= -1;
		this.run =0;
		this.t = window.setInterval(function(){temp.up_down();},10);
	}
}
&lt;/pre&gt;</description><category>JavaScript之旅</category><pubDate>Wed, 12 Dec 2007 12:15:21 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/toggle.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/toggle.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/toggle.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965440/5164678</fs:itemid></item><item><title>Tooltip效果</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965441/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=88</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=88&amp;key=a6947dbf</trackback:ping><description>网上tooltip效果有不少,简易实用的不多.比如google的,长的可怕,也让人看不懂.还有一些属于IE only.在jQuery中有一个tooltip效果,还算不错.但个人不是很喜欢,而且还要加个jQuery,无疑,代码长了一些.&lt;br/&gt;
下面是之前在蓝色上看到的一个tooltip效果,不错,对它做了一些修改(比如之前只是对链接有tooltip效果,现在对图片也可以有这个效果)加了注释,是深入javascript深入UI学习的一个不错的例子.&lt;br/&gt;
当然,你可以在tooltip的基础上加入AJAX效果.(如果是文章发布系统,比较好的是文章会有个简介,AJAX把这部分内容放到tooltip中去.&lt;br/&gt;
&lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;说明&lt;/font&gt;&lt;/b&gt;:
&lt;p class=&quot;code&quot;&gt;&lt;font color=&quot;Red&quot;&gt;原作者:不详(如果有人知道,email我,会及时修改)&lt;/font&gt;&lt;br/&gt;&lt;font color=&quot;Red&quot;&gt;修改者:草履虫&lt;/font&gt;&lt;br/&gt;&lt;font color=&quot;Red&quot;&gt;联系:caolvchong@gmail.com&lt;/font&gt;&lt;br/&gt;转贴请说明上面一段&lt;/p&gt;
&lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;效果图&lt;/font&gt;&lt;/b&gt;:&lt;img onload=&quot;ResizeImage(this,520)&quot; src=&quot;http://cceer.xmu.edu.cn/blog/upload/tooltop1.jpg&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;
&lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;预览地址&lt;/font&gt;&lt;/b&gt;:&lt;a href=&quot;http://mmchong.3322.org:81/tooltip/tooltip.html&quot; target=&quot;_blank&quot;&gt;http://mmchong.3322.org:81/tooltip/tooltip.html&lt;/a&gt;  本机上,有时可能访问不了
&lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;使用说明&lt;/font&gt;&lt;/b&gt;:
&lt;p class=&quot;code&quot;&gt;在需要的页面引用这段js,或者你把它写入js文件调用,并在window.onload中加入enable_tooltip();即可&lt;br/&gt;&lt;/p&gt;
&lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;范例打包下载&lt;/font&gt;&lt;/b&gt;:
&lt;a href=&quot;http://cceer.xmu.edu.cn/blog/upload/tooltip.rar&quot; target=&quot;_blank&quot;&gt;tooltip.rar&lt;/a&gt;
&lt;pre name=&quot;code&quot; class=&quot;js&quot;&gt;
//===============================tooltip效果函数================================
/*---&gt;enableTooltips()
 * 功能:调用tooltip效果
 * 参数:无
 * 返回:无
 */
	function enable_tooltip(){
		var links,i,h;
		//是否支持DOM
		if(!document.getElementById || !document.getElementsByTagName){
			return;
		}
		//添加样式
		add_css();
		h=document.createElement(&quot;span&quot;);
		h.setAttribute(&quot;id&quot;,&quot;btc&quot;);
		h.style.position=&quot;absolute&quot;;
		document.getElementsByTagName(&quot;body&quot;)[0].appendChild(h);
		//遍历链接,添加tooltip事件
		for(i=0;i&lt;document.getElementsByTagName(&quot;a&quot;).length;i++){
		    Prepare(document.getElementsByTagName(&quot;a&quot;)[i]);
		}
		//遍历图片,添加tooltip事件
		for(i=0;i&lt;document.getElementsByTagName(&quot;img&quot;).length;i++){
		    Prepare(document.getElementsByTagName(&quot;img&quot;)[i]);
		}
	}
/*---&gt;Prepare(el)
 * 功能:实现tooltip的显示,删除,透明度等功能
 * 参数:
 * 		el:受作用节点
 * 返回:无
 */
	function Prepare(el){
		//变量说明:
			//tooltip:tooltip效果的整体,装载在id为btc的span标签中
			//s:显示链接的title,tooltip的上半部分效果
			//t:title的值
			//b:显示链接的href,tooltip下半部分效果
			//l:链接内容,就是href的值
		var tooltip,t,b,s,l;
		t=el.getAttribute(&quot;title&quot;);
		if(t==null || t.length==0){
			return;
		}
		//去掉该节点的title属性
		if(el.getAttribute(&quot;title&quot;)){
			el.removeAttribute(&quot;title&quot;);
		}
		if(el.getAttribute(&quot;alt&quot;)){
			el.removeAttribute(&quot;alt&quot;);
		}
		//创建节点tooltip,标签为span,设置class属性值为tooltip
		tooltip=CreateEl(&quot;span&quot;,&quot;tooltip&quot;);
		//创建节点s,标签为span,设置class属性值为top.s节点是用来显示a链接的title内容
		s=CreateEl(&quot;span&quot;,&quot;top&quot;);
		s.appendChild(document.createTextNode(t));
		tooltip.appendChild(s);
		
		//创建节点b,标签为span,设置class属性值为bottom.b节点是用来显示a的链接的href内容
		b=CreateEl(&quot;b&quot;,&quot;bottom&quot;);
		l=el.getAttribute(&quot;href&quot;) || el.getAttribute(&quot;src&quot;);
		if(l.length&gt;30) l=l.substr(0,27)+&quot;...&quot;;
		b.appendChild(document.createTextNode(l));
		tooltip.appendChild(b);
		//设置透明度
		setOpacity(tooltip);
		el.tooltip=tooltip;
		//节点的鼠标移到上面事件:显示tooltip
		el.onmouseover=showTooltip;
		//节点的鼠标移出事件:移除tooltip
		el.onmouseout=hideTooltip;
		//节点的鼠标在上面移动事件:只要调整位置
		el.onmousemove=Locate;
	}
/*---&gt;add_css()
 * 功能:动态添加样式
 * 参数:无
 * 返回值:无
 */
	function add_css(){
		var l=CreateEl(&quot;link&quot;);
		l.setAttribute(&quot;type&quot;,&quot;text/css&quot;);
		l.setAttribute(&quot;rel&quot;,&quot;stylesheet&quot;);
		l.setAttribute(&quot;href&quot;,&quot;css/tooltip.css&quot;);
		l.setAttribute(&quot;media&quot;,&quot;screen&quot;);
		document.getElementsByTagName(&quot;head&quot;)[0].appendChild(l);
	}
/*---&gt;CreateEl(t,c)
 * 功能:创建一个标签节点,并设置它的css属性
 * 参数:
 * 		t:要创建的标签名
 * 		c:要创建的css的class名
 * 返回:创建的节点
 */
	function CreateEl(t,c){
		var x=document.createElement(t);
		x.className=c;
		x.style.display=&quot;block&quot;;
		return(x);
	}
/*---&gt;setOpacity(el)
 * 功能:设置tooltip的透明度
 * 参数:tooltip当前节点
 * 返回值:无
 */
	function setOpacity(el){
		el.style.filter=&quot;alpha(opacity:75)&quot;;
		el.style.KHTMLOpacity=&quot;0.75&quot;;
		el.style.MozOpacity=&quot;0.75&quot;;
		el.style.opacity=&quot;0.75&quot;;
	}
/*---&gt;showTooltip(e)
 * 功能:显示tooltip,并设置位置
 * 参数:
 * 		e:事件,这里接受a的onmouseover
 * 返回:无
 * 说明:由于是把tooltip节点做为孩子加入btc节点,所以后面删除只要移除tooltip节点即可.
 * 	    而tooltip是第一个孩子,所以removeChild掉firstChild即可
 */
	function showTooltip(e){
		document.getElementById(&quot;btc&quot;).appendChild(this.tooltip);
		Locate(e);
	}
/*---&gt;hideTooltip(e)
 * 功能:移除tooltip显示
 * 参数:
 * 		e:事件,这里接受a的onmouseout事件
 * 返回:无
 */
	function hideTooltip(e){
		//获取tooltip节点
		var d=document.getElementById(&quot;btc&quot;);
		if(d.childNodes.length&gt;0) d.removeChild(d.firstChild);
	}
/*---&gt;Locate(e)
 * 功能:设置tooltip的位置
 * 参数:
 * 		e:事件,,这里接受a的onmousemove
 * 	返回:无
 */
	function Locate(e){
		var posx=0,posy=0;
		if(e==null) e=window.event;
		if(e.pageX || e.pageY){
		    posx=e.pageX; posy=e.pageY;
		}else if(e.clientX || e.clientY){
		    if(document.documentElement.scrollTop){
		        posx=e.clientX+document.documentElement.scrollLeft;
		        posy=e.clientY+document.documentElement.scrollTop;
		    }else{
		        posx=e.clientX+document.body.scrollLeft;
		        posy=e.clientY+document.body.scrollTop;
		    }
		}
		document.getElementById(&quot;btc&quot;).style.top=(posy+10)+&quot;px&quot;;
		document.getElementById(&quot;btc&quot;).style.left=(posx-20)+&quot;px&quot;;
	}
&lt;/pre&gt;
代码请以范例下载包中为准</description><category>JavaScript之旅</category><pubDate>Mon, 19 Nov 2007 19:59:31 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/tooltip.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/tooltip.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/tooltip.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965441/5164678</fs:itemid></item><item><title>网站换肤技术</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965442/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=87</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=87&amp;key=6bf579fc</trackback:ping><description>很久没有更新,昨天看了下网站的PR值,由原来的0变成了3,哈哈,找工作烦中获得了一点YY的快感....&lt;br/&gt;
前一段有空都在做这样的一个案例:SVN+PHP(PDO+Smarty)+Ajax+一些前台效果(拖拽,Tooltip,换肤)等问题,目前还没有完成.预览可以看这里:http://mmchong.3322.org:81/work_xm_1/index.php(可能访问不了)有空会整理成一个个模块介绍下.最后会把整个案例做出来,相当于一个文章发布系统,这也是当时实习后决定要做的项目.
预览下换肤的图:
&lt;img onload=&quot;ResizeImage(this,520)&quot; src=&quot;http://cceer.xmu.edu.cn/blog/upload/showd.jpg&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;
&lt;br/&gt;&lt;br/&gt;
今天介绍的是换肤技术.&lt;br/&gt;
作者:&lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;草履虫&lt;/font&gt;&lt;/b&gt;&lt;br/&gt;
联系:&lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;caolvchong@gmail.com&lt;/font&gt;&lt;/b&gt;&lt;br/&gt;
首发:&lt;b&gt;&lt;font color=&quot;Blue&quot;&gt;http://cceer.xmu.edu.cn/&lt;/font&gt;&lt;/b&gt;&lt;br/&gt;

换肤技术原理:很简单,动态改变需要的css文件就可以了.如果需要保存,设置cookie即可.&lt;br/&gt;
具体的说:&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;1.CSS设置部分:&lt;/b&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;通常,你需要写一个网站通用的CSS文件,该文件一般只控制css的位置布局,不设计颜色,背景布局
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;然后有多个换肤方案的css文件,这里就只控制颜色,背景
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;2.JS部分:&lt;/b&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;有一个换肤函数,替换link中的需要的css
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;有cookie读写函数,用于保存设置
&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
换肤函数可以这么写:
&lt;pre name=&quot;code&quot; class=&quot;js&quot;&gt;
//====================换肤效果=====================
/*函数:change_css(css_id,css_document)
 *功能:自定义版面色彩样式,并写入cookie,保存
 *参数:
     css_id:要被替换的css文件在页面中的id
     css_document:要使用的css文件的路径
     cookie_name:要设置的该样式的cookie名称
 *返回值:
     无
 *--------------------------------*/
    function change_css(css_id,css_document,cookie_name){
        document.getElementById(css_id).setAttribute(&quot;href&quot;,css_document);
        set_cookie(cookie_name,css_document,365);//保存为1年,当然,你也可以把它分离出来,做为参数设置
    }

//====================cookie函数====================
/*--函数名:set_cookie
 *--功能:设置cookie,只能自定义一个cookie的名和值,设置多个时需要多次调用
 *--参数:
      c_name:自定义cookie名
      c_value:自定义cookie值
      可选c_expires:设置该cookie的存活时间,单位:天
      可选c_path:设置该cookie的路径
      可选c_domain:设置该cookie的域
      可选c_secure:设置是否安全cookie,1安全,0或不设置,不安全
 *--返回值:
       无
 *--------------------------------*/
    function set_cookie(c_name,c_value,c_expires,c_path,c_domain,c_secure){
      var cookie_string=c_name + &quot;=&quot; + escape(c_value);
      if(c_expires){
        var expires = new Date();
        expires.setTime(expires.getTime() + c_expires * 24 * 60 * 60 * 1000);
        cookie_string+=&quot;;expires=&quot;+expires;
      }
      if(c_path){
        cookie_string+=&quot;;path=&quot;+c_path;
      }
      if(c_domain){
        cookie_string+=&quot;;domain=&quot;+c_domain;
      }
      if(c_secure){
         cookie_string+=&quot;;secure&quot;;
      }
      document.cookie=cookie_string;
    }
/*--函数名:get_cookie
 *--功能:读取需要的cookie
 *--参数:
      c_name:要读取的cookie名
 *--返回值:
      value:要读取的cookie的值
 *--------------------------------*/
    function get_cookie(cookie_name){
       var cookie_pos = document.cookie.indexOf(cookie_name);
      // 如果找到了索引，就代表cookie存在，反之，就说明不存在。
      if (cookie_pos != -1){
         // 把cookie_pos放在值的开始，只要给值加1即可。
         cookie_pos += cookie_name.length + 1;
         var cookie_end = document.cookie.indexOf(&quot;;&quot;, cookie_pos);
         if (cookie_end == -1){
            cookie_end = document.cookie.length;
          }
         var value = unescape(document.cookie.substring(cookie_pos,cookie_end));
       }
      return value;
     }

//===================调用=====================
    window.onload = function() {
        var d_css_document=css_document;//默认的css文件,比如css/green.css
        var cookie = get_cookie(cookie_name);//读取cookie
        var css_document=cookie?cookie:d_css_document;//cookie是否存在
        change_css(css_id,css_document,cookie_name);//修改样式,当然,你要填入你自己的参数
    }

    &lt;div  onclick=&quot;change_css(css_id,css_document,cookie_name)&quot;&gt;&lt;/div&gt;
    比如:
     &lt;link rel=&quot;stylesheet&quot; href=&quot;css/null.css&quot; type=&quot;text/css&quot; media=&quot;all&quot; id=&quot;style&quot;/&gt; //这里的href写一个不存在的css,并设置id
    &lt;div id=&quot;skin_green&quot; onclick=&quot;change_css('style','css/green.css','style')&quot;&gt;&lt;/div&gt;  //换肤

==========================================================
&lt;/pre&gt;</description><category>JavaScript之旅</category><pubDate>Sat, 10 Nov 2007 21:48:43 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/87.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/87.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/87.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965442/5164678</fs:itemid></item><item><title>flash(swf)遮住其他网页内容问题的解决</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965443/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=86</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=86&amp;key=16fe589b</trackback:ping><description>&lt;br /&gt;
今天中午写了个lightbox的后台程序来管理相册,由于站点上存在flash导航,lightbox展示时总是无法遮住这个导航的swf&lt;br /&gt;
解决方法,如下:&lt;br /&gt;
------------------------------------------------&lt;br /&gt;
&amp;lt;object type=&amp;quot;application/x-shockwave-flash&amp;quot; data=&amp;quot;flash地址&amp;quot; width=&amp;quot;宽&amp;quot; height=&amp;quot;高&amp;quot;&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;flash地址&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;transparent&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
------------------------------------------------&lt;br /&gt;
在IE FF OP NS下通用</description><category>CSS之旅</category><pubDate>Thu, 25 Oct 2007 14:52:35 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/swfpro.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/swfpro.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/swfpro.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965443/5164678</fs:itemid></item><item><title>SVN的入门使用</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965444/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=85</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=85&amp;key=f4ae8da7</trackback:ping><description>SVN的入门(包括简单的安装,权限设置,修改等等),是上个星期使用SVN时写的一个备忘&lt;br /&gt;
需要深入,或者下面看不明白的,可以访问SVN网站:http://iusesvn.com,因为只是备忘,不像教程那样,提供的网站上面倒是有很多教程可以参考&lt;br /&gt;
另外,这里可能排版不是很好,可以尝试访问我的WIKI:http://mmchong.3322.org:81/mediawiki/&lt;br /&gt;
由于挂在机子上,可能因为网络原因无法访问&lt;br /&gt;
&lt;br /&gt;
作者:&lt;font color=&quot;#0000ff&quot;&gt;&lt;strong&gt;草履虫&lt;br /&gt;
&lt;/strong&gt;&lt;/font&gt;email:&lt;strong&gt;&lt;font color=&quot;#0000ff&quot;&gt;caolvchong@gmail.com&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;font size=&quot;4&quot; color=&quot;#0000ff&quot;&gt;&lt;strong&gt; &lt;br /&gt;
&lt;br /&gt;
安装&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * 我安装的SVNServe版本:1.4.4&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * 客户端TortoiseSVN版本1.4.4 &lt;br /&gt;
在windows 2003下,去相关网站下载的exe安装版本&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;font size=&quot;4&quot; color=&quot;#3366ff&quot;&gt;&lt;strong&gt;版本库建造&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;#ff0000&quot;&gt;&lt;strong&gt;建立一个版本控制目录&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * 下面我们在&amp;quot;F:\test\version_control\&amp;quot;下建立一个版本库,可以有下面两种办法: &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. 在cmd中输入 svnadmin create F:\test\version_control\caolvchong.3322.org&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. 在F:\test\version_control\下新建 caolvchong.3322.org 文件夹,然后右键 caolvchong.3322.org 文件夹,利用TortoiseSVN菜单的 create repository here..,然后在弹出的菜单中选择 FSFS选项 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * 上面操作以后,我们发现 caolvchong.3322.org 文件夹中多了一些文件,就是SVN生成的版本控制文件 &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;#ff0000&quot;&gt;&lt;strong&gt;建立一个源代码目录&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * 这个目录是真正的代码目录,这时是第一个版本.我们假设该目录如下: &lt;br /&gt;
我们在F:\test\下建立工作拷贝目录 work_backup\,然后在work_backup目录中建立我们的网站目录&lt;br /&gt;
caolvchong.3322.org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 网站的目录&lt;br /&gt;
├─admin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 管理员目录&lt;br /&gt;
│&amp;nbsp; ├─right&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 右边目录&lt;br /&gt;
│&amp;nbsp; ├─left&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 左边目录&lt;br /&gt;
│&amp;nbsp; └─top&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 顶部目录&lt;br /&gt;
├─docs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 帮助文档目录&lt;br /&gt;
└─temp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 临时文件目录&lt;br /&gt;
&lt;br /&gt;
&lt;font size=&quot;4&quot; color=&quot;#0000ff&quot;&gt;&lt;strong&gt;权限设置&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;#ff0000&quot;&gt;&lt;strong&gt;人员权限说明&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * 假设参与网站caolvchong.3322.org代码编写的成员有下面这些人: &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. caolvchong:网站策划以及代码编写者之一,对所有网站目录文件可读写&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. jinjin:代码编写者,负责admin/right的编写,但对admin/left和admin/top以及docs不可写(也就是对所有目录文件可读,除了admin/left和admin/top以及docs三个目录以及不可写外,对其他目录可写)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3. maomao:文档编写,对admin不可读,对docs可读写 &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt; 具体目录权限分配说明&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;
caolvchong.3322.org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 网站的目录(不允许匿名访问,caolvchong:rw;jinjin:r;maomao:r)&lt;br /&gt;
├─admin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 管理员目录(caolvchong:rw;jinjin:r;maomao:没有权限)&lt;br /&gt;
│&amp;nbsp; ├─right&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 右边目录(caolvchong:rw;jinjin:rw;maomao:没有权限)&lt;br /&gt;
│&amp;nbsp; ├─left&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 左边目录(caolvchong:rw;jinjin:r;maomao:没有权限)&lt;br /&gt;
│&amp;nbsp; └─top&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 顶部目录(caolvchong:rw;jinjin:r;maomao:没有权限)&lt;br /&gt;
├─docs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 帮助文档目录(caolvchong:rw;jinjin:r;maomao:rw)&lt;br /&gt;
└─temp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 临时文件目录(*:rw)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;#ff0000&quot;&gt;&lt;strong&gt;具体实现&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
修改版本库(F:\test\version_control\caolvchong.3322.org)的&lt;strong&gt;&lt;font color=&quot;#339966&quot;&gt;conf\svnserve.conf文件&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;
下面是一份写好的文件,包括帮助文档&lt;br /&gt;
---------------------------------------------------&lt;br /&gt;
[general]&lt;br /&gt;
#匿名用户权限控制:none(不可读),read(只读),write(读写)&lt;br /&gt;
anon-access = none&lt;br /&gt;
#非匿名用户,同样也是三种权限控制:none(不可读),read(只读,不可写),write(可以访问,是否可写看authz文件中的设置)&lt;br /&gt;
auth-access = write&lt;br /&gt;
#调用用户---密码文件 passwd&lt;br /&gt;
password-db = passwd&lt;br /&gt;
#调用用户权限文件 authz&lt;br /&gt;
authz-db = authz&lt;br /&gt;
---------------------------------------------------&lt;br /&gt;
修改版本库(F:\test\version_control\caolvchong.3322.org)的conf\passwd文件&lt;br /&gt;
&lt;br /&gt;
&lt;font color=&quot;#339966&quot;&gt;&lt;strong&gt;&lt;br /&gt;
passwd文件&lt;/strong&gt;&lt;/font&gt;的设置和帮助文件的例子如下:&lt;br /&gt;
---------------------------------------------------&lt;br /&gt;
##控制访问的用户和密码,格式:&lt;br /&gt;
##用户名 = 密码&lt;br /&gt;
##比如: caolvchong =123456789&lt;br /&gt;
[users]&lt;br /&gt;
caolvchong = caolvchong123&lt;br /&gt;
jinjin = jinjin123&lt;br /&gt;
maomao = maomao123&lt;br /&gt;
---------------------------------------------------&lt;br /&gt;
&amp;nbsp;修改版本库(F:\test\version_control\caolvchong.3322.org)的&lt;strong&gt;&lt;font color=&quot;#339966&quot;&gt;conf\authz文件&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
下面是根据上面的权限设置弄的一份标准的带注释的例子&lt;br /&gt;
---------------------------------------------------&lt;br /&gt;
##[group]定义用户组&lt;br /&gt;
##比如下面的:&lt;br /&gt;
##g_manager = caolvchong 表示用户caolvchong将用g_manager表示,caolvchong是出现在passwd中的用户名&lt;br /&gt;
[groups]&lt;br /&gt;
g_manager = caolvchong&lt;br /&gt;
g_docs = maomao&lt;br /&gt;
g_coder = jinjin&lt;br /&gt;
&lt;br /&gt;
##目录权限控制&lt;br /&gt;
##对根目录,所有用户都有读的权限,caolvchong有读写的权利&lt;br /&gt;
##使用上面定义的名字前面要加@&lt;br /&gt;
[caolvchong.3322.org:/]&lt;br /&gt;
@g_manager = rw&lt;br /&gt;
* = r&lt;br /&gt;
&lt;br /&gt;
##对admin/top的控制,caolvchong可读写,jinjin可读,其他人不可读&lt;br /&gt;
[caolvchong.3322.org:/admin/top]&lt;br /&gt;
@g_manager = rw&lt;br /&gt;
@g_coder = r&lt;br /&gt;
* =&lt;br /&gt;
&lt;br /&gt;
##对admin/left的控制,caolvchong可读写,jinjin可读,其他人不可读&lt;br /&gt;
[caolvchong.3322.org:/admin/left]&lt;br /&gt;
@g_manager = rw&lt;br /&gt;
@g_coder = r&lt;br /&gt;
* =&lt;br /&gt;
&lt;br /&gt;
##对admin/right的控制,caolvchong,jinjin可读写,其他人不可读&lt;br /&gt;
[caolvchong.3322.org:/diary/shanghai]&lt;br /&gt;
@g_manager = rw&lt;br /&gt;
@g_coder = rw&lt;br /&gt;
* =&lt;br /&gt;
&lt;br /&gt;
##对docs的控制,caolvchong,maomao可读写,jinjin可读,其他人不可读&lt;br /&gt;
[caolvchong.3322.org:/docs]&lt;br /&gt;
@g_manager = rw&lt;br /&gt;
@g_docs = rw&lt;br /&gt;
@g_coder = r&lt;br /&gt;
* = &lt;br /&gt;
&lt;br /&gt;
##对temp的控制,所有人可读写&lt;br /&gt;
[caolvchong.3322.org:/temp]&lt;br /&gt;
* = rw&lt;br /&gt;
---------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;#ff0000&quot;&gt;&lt;strong&gt;把源码提交到版本库(导入最初的库)&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
目的是让 版本库(F:\test\version_control\caolvchong.3322.org)获取到 我们的最初的代码库(F:\test\work_backup\caolvchong.3322.org) 的信息&lt;br /&gt;
&lt;br /&gt;
操作如下: 先让svn服务运行,在cmd中输入 svnserve -d -r F:\test\version_control 当然,这样总有一个窗口存在,如果你想不存在窗口而且每次系统启动自动启动,则去下一个辅助软件,把svn注册成服务即可.&lt;br /&gt;
&lt;br /&gt;
右键 最初的代码库(F:\test\work_backup\caolvchong.3322.org) ---TortoiseSVN---Import&lt;br /&gt;
在弹出的界面中的URL中输入: svn://localhost/caolvchong.3322.org, 点击 ok 就能把我们的代码库信息被 版本库获取了&lt;br /&gt;
&lt;font size=&quot;4&quot; color=&quot;#0000ff&quot;&gt;&lt;strong&gt;&lt;br /&gt;
客户端获取版本&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
在你的任何地方新建一个文件夹,这里是建在 F:\test\work\caolvchong.3322.org 右键 F:\test\work\caolvchong.3322.org ---SVN CheckOut,在弹出的对话框中输入你需要的URL,这里是svn://localhost/caolvchong.3322.org/,目标目录是你刚建的工作目录 F:\test\work\caolvchong.3322.org 然后输入用户名和密码,就能从版本库中获取到你需要的目录和文件了&lt;br /&gt;
&lt;strong&gt;&lt;font size=&quot;4&quot; color=&quot;#0000ff&quot;&gt;&lt;br /&gt;
客户端提交修改&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;
客户第一个获取版本就是上面说的用 SVN checkout 然后你编辑有权限的目录.编辑完 右键 该文件---SVN commit,输入用户名和密码,原因等等就能提交到SVN服务器的版本库了(当然,需要你有权限,不然将无法成功提交)&lt;br /&gt;
&lt;br /&gt;
一般地,使用时,你需要先在工作目录中右键 SVN Update 获取当前的版本一下&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;font size=&quot;4&quot; color=&quot;#0000ff&quot;&gt;查看修改(可能来自别人的修改)&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;
右键---TortoiseSVN---show log</description><category>PHP之旅</category><pubDate>Wed, 17 Oct 2007 17:25:44 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/svn_1.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/svn_1.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/svn_1.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965444/5164678</fs:itemid></item><item><title>日子,日子</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965445/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=84</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=84&amp;key=329c7f50</trackback:ping><description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这段日子,忙的不行,几个网站的维护,学习上的事,找工作的事,以及其他七七八八的琐事,让自己有点焦头烂额.很久没有写文章,动动键盘,希望发点牢骚后,能够以平和的心态来重新面对.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 昨天一个客户(朋友)要修改程序,原本按照他的要求,设计了一个比较复杂的系统(订购系统),使用了ajax.由于客户开始的定位有问题,当网站挂出去后一段时间,觉得目前不需要这么复杂的过程,需要简化.牵一发动全身,前台页面要修改,ajax过程要修改,javascript的判断条件要修改,后台判断条件要修改,数据库字段要修改,后台数据统计要修改.....快崩溃,后来和客户商量了一下,为了以后扩展,简化了一下过程,但也着实让我头皮发麻.记录下这个网站的历程:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 代码书写(前台+后台+美工),大约用了5天时间(那时还得上课....)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 购买空间和域名,用了3天,这些都是刚接触的,去朋友那里买的空间,域名edong买的,买卖过程中学了点东西还算不错.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 网站维护,这个最TM的烦,一直断断续续搞到现在,现在充当网站的编辑+程序维护+服务器维护.这日子折磨人啊.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 网站是给朋友做的,这些牢骚只能自己在一个角落发发,毕竟是朋友,自己也不怎么会处理朋友和商业合作的问题.这里给路过的看官一个请教:&lt;br /&gt;
&lt;font color=&quot;#ff0000&quot;&gt;&lt;strong&gt;&lt;font size=&quot;4&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  如何处理和朋友之间的含不定报酬的合作&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;span class=&quot;Title&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 再说今天吧,另一个网站(这个也几乎是全能,网站的前台,后台,美工,服务器维护都是俺一人,还好编辑不是我),要我设计logo和信封.一直认为自己审美不是强项,虽然photoshop还算可以,但谈到设计,确实不顶.虽然是份外的事,但客户要求了,硬着头皮上了.logo设计了,信封设计了.但是觉得烦的不行了.这东西从结果看虽然还不错,但一堆程序要写却要抽时间来搞这东西,而且客户欠了我好几个月工资(合作关系没有合同,比较复杂...),心理上有些阴影....&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 昨天就出现了今天晚上这种情绪,然后咬咬牙去学暑假实习时david一开始就叫我接触的SVN,当时一心要切入正题PHP就草草弄了一下SVN.弄了一网上,总算搞明白了怎么架设SVN,权限分配以及客户端操作问题.但还是比较浅显的,然后在wiki上记录了详细的过程,如果谁需要,留言吧.个人认为给初学者看做入门是绰绰有余且通俗易懂的.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 讲到这里不得不提下david,暑假跟了他学了不少东西,尤其是理念上的.这里要感谢他一下,这么久没有向他说谢谢,有点失利.而且答应他抽点时间过去的,拖拖拖,忙忙忙,就给耽搁下来了....而且最近总是整这整那,就算是编写程序代码,也多是和ASP,javascript打交道. LAMP几乎就没去动过,smarty+pdo是暑假的一大收获,现在要用,恐怕还得翻翻当时留下的笔记了.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font size=&quot;4&quot; color=&quot;#ff0000&quot;&gt;&lt;strong&gt;借这里向david表示感谢,如果david看到了,领个情收下吧.&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 大家保研的在争抢得轰轰烈烈后前几天有了定音,考研的还在早出晚归,还有打算出国的,接着就是找工作的.招聘会接踵而至,自己也没啥准备,只是有个做个简历网站的念头,目前只打算给自己和舍友做一个简单点的简历网站.而找工作的迷茫依旧披在身上.没的选择的难,有的选择的难,自己就介于有的选择和没的选择之间,也难.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 劈劈啪啪打了一通,心情也不见好转....算了,这日子,日子啊.......</description><category>生活之旅</category><pubDate>Fri, 12 Oct 2007 20:40:06 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/life_1.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/life_1.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/life_1.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965445/5164678</fs:itemid></item><item><title>AJAX实现4级联动菜单</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965446/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=83</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=83&amp;key=d69a0a13</trackback:ping><description>&lt;p class=&quot;code&quot;&gt;*项目名称:&lt;font color=&quot;blue&quot;&gt;AJAX打造4级联动菜单&lt;/font&gt;&lt;br/&gt;*作者:&lt;font color=&quot;blue&quot;&gt;草履虫&lt;/font&gt;&lt;br/&gt;*联系:&lt;font color=&quot;blue&quot;&gt;caolvchong@gmail.com&lt;/font&gt;&lt;br/&gt;*时间:2007-10-3&lt;br/&gt;*起因:&lt;br/&gt;  应一位网友的请求&lt;br/&gt;*开发平台:Windows2003 IIS6.0 Access数据库&lt;br/&gt;*工具:Emeditor,Access2003(数据库)&lt;br/&gt;*测试平台:Firefox2.0,Opera9.2,IE6.0,IE7.0&lt;br/&gt;*演示地址:&lt;font color=&quot;red&quot;&gt;http://finish.3322.org/4_select/index.asp&lt;/font&gt;(短期有效,在本机上,可能访问不顺畅)&lt;br/&gt;*原文地址:&lt;font color=&quot;red&quot;&gt;http://cceer.xmu.edu.cn/blog/view.asp?id=83&lt;/font&gt;&lt;br/&gt;*:文件结构:&lt;br/&gt;  数据库结构:四级联动,用四张表存各级的数据(加个conn.asp连接数据库)&lt;br/&gt;  对于数据库结构,其实这4个表可以放到一个表中,而不必要四个表.只要添加一个字段表名等级即可.数据库结构去附件中看看吧,加了注释了.&lt;br/&gt;  function.asp:数据处理文件&lt;br/&gt;  deal.asp:ajax后台处理文件&lt;br/&gt;  ajax.js:ajax交互文件核心&lt;br/&gt;  index.asp:表现页面&lt;br/&gt;*和之前写的3级联动区别:&lt;br/&gt;  区别是蛮大的,采用了新的算法,代码重用性也高了,一定程度上分离了业务逻辑和表现逻辑等等.这些看代码自己体会吧&lt;br/&gt;  如果你要加以改造,或者实现任意级的联动,修改起来应该不难,因为这次实现联动菜单的算法已经考虑到这种情况.&lt;br/&gt;&lt;/p&gt;
*下载地址:&lt;a href=&quot;http://cceer.xmu.edu.cn/blog/upload/4_select.rar&quot; target=&quot;_blank&quot;&gt;4_select.rar&lt;/a&gt;&lt;br/&gt;
或者:&lt;a href=&quot;http://finish.3322.org/4_select.rar&quot; target=&quot;_blank&quot;&gt;http://finish.3322.org/4_select.rar&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;
&lt;font color=&quot;blue&quot;&gt;index.asp代码:&lt;/font&gt;
&lt;p class=&quot;code&quot;&gt;&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&amp;gt;&lt;br/&gt;&amp;lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&amp;gt;&lt;br/&gt;&amp;lt;head&amp;gt;&lt;br/&gt;&amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&amp;gt;&lt;br/&gt;&amp;lt;title&amp;gt;四级联动菜单&amp;lt;/title&amp;gt;&lt;br/&gt;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;ajax.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br/&gt;&amp;lt;!--#include file=&quot;function.asp&quot;--&amp;gt;&lt;br/&gt;&amp;lt;/head&amp;gt;&lt;br/&gt;&amp;lt;body&amp;gt;&lt;br/&gt;&amp;lt;select name=&quot;xiaoqu&quot; onchange=&quot;ajax_change(this.value,'yuanxi',$('yuanxi'));&quot;&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;option value=&quot;-1&quot;&amp;gt;-----请选择校区----&amp;lt;/option&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;%&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu=read_xiaoqu()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if IsArray(xiaoqu) then&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i=lbound(xiaoqu) to ubound(xiaoqu)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.write &quot;&amp;lt;option value=&quot;&amp;xiaoqu(i)(0)&amp;&quot;&amp;gt;&quot;&amp;(i+1)&amp;&quot;├&quot;&amp;xiaoqu(i)(1)&amp;&quot;&amp;lt;/option&amp;gt;&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;next&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end if&lt;br/&gt;&amp;nbsp;&amp;nbsp;%&amp;gt;&lt;br/&gt;&amp;lt;/select&amp;gt;&lt;br/&gt;&amp;lt;span id=&quot;yuanxi&quot;&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;select&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;option value=&quot;-1&quot;&amp;gt;-----请选择院系-----&amp;lt;/option&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/select&amp;gt;&lt;br/&gt;&amp;lt;/span&amp;gt;&lt;br/&gt;&amp;lt;span id=&quot;zhuanye&quot;&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;select&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;option value=&quot;-1&quot;&amp;gt;-----请选择专业-----&amp;lt;/option&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/select&amp;gt;&lt;br/&gt;&amp;lt;/span&amp;gt;&lt;br/&gt;&amp;lt;span id=&quot;banji&quot;&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;select&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;option value=&quot;-1&quot;&amp;gt;-----请选择班级-----&amp;lt;/option&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/select&amp;gt;&lt;br/&gt;&amp;lt;/span&amp;gt;&lt;br/&gt;&amp;lt;/body&amp;gt;&lt;br/&gt;&amp;lt;/html&amp;gt;&lt;br/&gt;&lt;/p&gt;

&lt;font color=&quot;blue&quot;&gt;function.asp代码:&lt;/font&gt;
&lt;p class=&quot;code&quot;&gt;&amp;lt;!--#include file=&quot;conn.asp&quot;--&amp;gt;&lt;br/&gt;&amp;lt;%&lt;br/&gt;'---&amp;gt;函数:read_xiaoqu()&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 功能:返回所有的校区&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 参数:无&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 返回值:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;返回一个数组,格式为((校区id,校区名称),(校区id,校区名称),....)&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 调用:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu=read_xiaoqu()&amp;nbsp;&amp;nbsp;这里,xiaoqu是变量名,可以任意取&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 使用:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu(0)(0)----对应第一个记录的id&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu(0)(1)----对应第一个记录的name,依此类推&lt;br/&gt;&amp;nbsp;&amp;nbsp;function read_xiaoqu()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sql=&quot;select id,name from xiaoqu&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set rs=server.createobject(&quot;adodb.recordset&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;on error resume next&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rs.open sql,conn,1,1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if err&amp;lt;&amp;gt;0 then&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read_xiaoqu=-1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dim xiaoqu_array()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dim i:i=0&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while not rs.eof&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;redim preserve xiaoqu_array(i)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu_id=rs(&quot;id&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu_name=rs(&quot;name&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu_array(i)=array(xiaoqu_id,xiaoqu_name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i=i+1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rs.movenext&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wend&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read_xiaoqu=xiaoqu_array&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end if&lt;br/&gt;&amp;nbsp;&amp;nbsp;end function&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;'---&amp;gt;函数:read_table_data(id,table_name)&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 功能:返回对应表的数据&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 参数:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id,对应的父亲id&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;table_name:对应的表名&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;比如:选择了校区的id=2,table_name选择院系yuanxi.因为要从表院系中读取对应pid为2的数据&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 返回值:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;返回一个数组,格式为((id,name),(id,name),....)&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 调用:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data=read_table_data(id,table_name)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这里,data是变量名,可以任意取&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 使用:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data(0)(0)----对应第一个记录的id&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data(0)(1)----对应第一个记录的name,依此类推&lt;br/&gt;&amp;nbsp;&amp;nbsp;function read_table_data(id,table_name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sql=&quot;select id,name from &quot;&amp;table_name&amp;&quot; where pid=&quot;&amp;id&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set rs=server.createobject(&quot;adodb.recordset&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;on error resume next&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rs.open sql,conn,1,1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if err&amp;lt;&amp;gt;0 then&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read_table_data=-1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dim data_array()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dim i:i=0&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while not rs.eof&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;redim preserve data_array(i)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id=rs(&quot;id&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name=rs(&quot;name&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data_array(i)=array(id,name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i=i+1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rs.movenext&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wend&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read_table_data=data_array&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end if&lt;br/&gt;&amp;nbsp;&amp;nbsp;end function&lt;br/&gt;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&lt;br/&gt;'---&amp;gt;函数:option_default(table_name)&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 功能:返回选择框的头部&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 参数:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;table_name:对应的表名&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 返回值:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;返回一个字符串&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 调用:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str=option_default(table_name)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这里,str是变量名,可以任意取&lt;br/&gt;&amp;nbsp;&amp;nbsp;function option_default(table_name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select case table_name&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case &quot;yuanxi&quot;:&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str=&quot;请选择院系&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case &quot;zhuanye&quot;:&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str=&quot;请选择专业&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case &quot;banji&quot;:&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str=&quot;请选择班级&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case else&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str=&quot;出错了&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end select&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;option_default=str&lt;br/&gt;&amp;nbsp;&amp;nbsp;end function&lt;br/&gt;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&lt;br/&gt;'---&amp;gt;函数:set_next_node(table_name)&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 功能:返回当前生成节点的下一个节点的名字&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 参数:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;table_name:对应的表名&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 返回值:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;返回一个字符串&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 调用:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;next_node=set_next_node(table_name)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这里,next_node是变量名,可以任意取&lt;br/&gt;&amp;nbsp;&amp;nbsp;function set_next_node(table_name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select case table_name&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case &quot;yuanxiao&quot;:&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node=&quot;yuanxi&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case &quot;yuanxi&quot;:&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node=&quot;zhuanye&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case &quot;zhuanye&quot;:&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node=&quot;banji&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end select&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set_next_node=node&lt;br/&gt;&amp;nbsp;&amp;nbsp;end function&lt;br/&gt;%&amp;gt;&lt;br/&gt;&lt;/p&gt;

&lt;font color=&quot;blue&quot;&gt;ajax.js代码:&lt;/font&gt;
&lt;p class=&quot;code&quot;&gt;var $=function(tagId){&lt;br/&gt;&amp;nbsp;&amp;nbsp;return document.getElementById(tagId);&lt;br/&gt;}&lt;br/&gt;//------------------------------------------------------------&amp;nbsp;&amp;nbsp;&lt;br/&gt;//id:接收的id值(用来提供搜索条件)&lt;br/&gt;//type:接收的类型(用来提供表名)&lt;br/&gt;//node:接收的节点(用来反馈数据插入),通常是指定后面一个select&lt;br/&gt;&amp;nbsp;&amp;nbsp;function ajax_change(id,type,node){&lt;br/&gt;&amp;nbsp;&amp;nbsp;var xmlhttp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;try{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlhttp=new XMLHttpRequest();&lt;br/&gt;&amp;nbsp;&amp;nbsp;}catch(e){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlhttp=new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);&lt;br/&gt;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;xmlhttp.onreadystatechange=function(){&lt;br/&gt;&amp;nbsp;&amp;nbsp;if (xmlhttp.readyState==4){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (xmlhttp.status==200){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var data=xmlhttp.responseText;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node.innerHTML=data;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node.innerHTML=&quot;&amp;lt;select&amp;gt;&amp;lt;option&amp;gt;-----您未进行上一级选择-----&amp;lt;/option&amp;gt;&amp;lt;/select&amp;gt;&quot;;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;xmlhttp.open(&quot;post&quot;,&quot;deal.asp&quot;, true);&lt;br/&gt;&amp;nbsp;&amp;nbsp;xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');&lt;br/&gt;&amp;nbsp;&amp;nbsp;xmlhttp.send(&quot;id=&quot;+escape(id)+&quot;&amp;type=&quot;+escape(type));&lt;br/&gt;}&lt;br/&gt;&lt;/p&gt;

&lt;font color=&quot;blue&quot;&gt;deal.asp代码:&lt;/font&gt;
&lt;p class=&quot;code&quot;&gt;&amp;lt;%@LANGUAGE=&quot;VBSCRIPT&quot; CODEPAGE=&quot;65001&quot;%&amp;gt;&lt;br/&gt;&amp;lt;!--#include file=&quot;function.asp&quot;--&amp;gt;&lt;br/&gt;&amp;lt;%&lt;br/&gt;&amp;nbsp;&amp;nbsp;id=request.form(&quot;id&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;table_name=request.form(&quot;type&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;next_node=set_next_node(table_name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;if table_name &amp;lt;&amp;gt; &quot;banji&quot; then&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.write &quot;&amp;lt;select name=&quot;&quot;&quot;&amp;table_name&amp;&quot;&quot;&quot;  onchange=&quot;&quot;ajax_change(this.value,'&quot;&amp;next_node&amp;&quot;',$('&quot;&amp;next_node&amp;&quot;'));&quot;&quot;&amp;gt;&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;else&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.write &quot;&amp;lt;select name=&quot;&quot;&quot;&amp;table_name&amp;&quot;&quot;&quot;&amp;gt;&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;end if&lt;br/&gt;&amp;nbsp;&amp;nbsp;str=option_default(table_name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;response.write &quot;&amp;lt;option value=&quot;&quot;-1&quot;&quot; selected&amp;gt;---请选择&quot;&amp;str&amp;&quot;---&amp;lt;/option&amp;gt;&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;data=read_table_data(id,table_name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;if IsArray(data) then&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i=lbound(data) to ubound(data)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.write &quot;&amp;lt;option value=&quot;&amp;data(i)(0)&amp;&quot;&amp;gt;&quot;&amp;(i+1)&amp;&quot;├&quot;&amp;data(i)(1)&amp;&quot;&amp;lt;/option&amp;gt;&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;next&lt;br/&gt;&amp;nbsp;&amp;nbsp;end if&lt;br/&gt;&amp;nbsp;&amp;nbsp;response.write &quot;&amp;lt;/select&amp;gt;&quot;&lt;br/&gt;%&amp;gt;&lt;br/&gt;&lt;/p&gt;
&lt;br/&gt;&lt;br/&gt;
============================================================
今天补充下昨天晚上最先写的代码.更简洁,思路也清晰符合思维,但是IE不支持(就是option无法innerHTML到select中去)
index.asp(注意,前一个select和后一个select必须连在一起,即&lt;/ select&gt;&lt; select ...&gt;这种格式,否则取不到nextSibling)
&lt;p class=&quot;code&quot;&gt;&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&amp;gt;&lt;br/&gt;&amp;lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&amp;gt;&lt;br/&gt;&amp;lt;head&amp;gt;&lt;br/&gt;&amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&amp;gt;&lt;br/&gt;&amp;lt;title&amp;gt;四级联动菜单&amp;lt;/title&amp;gt;&lt;br/&gt;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;ajax.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br/&gt;&amp;lt;!--#include file=&quot;function.asp&quot;--&amp;gt;&lt;br/&gt;&amp;lt;/head&amp;gt;&lt;br/&gt;&amp;lt;body&amp;gt;&lt;br/&gt;&amp;lt;select name=&quot;xiaoqu&quot; onchange=&quot;ajax_change(this.value,this.nextSibling);&quot;&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;option value=&quot;-1&quot;&amp;gt;-----请选择校区----&amp;lt;/option&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;%&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu=read_xiaoqu()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if IsArray(xiaoqu) then&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i=lbound(xiaoqu) to ubound(xiaoqu)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.write &quot;&amp;lt;option value=&quot;&amp;xiaoqu(i)(0)&amp;&quot;&amp;gt;&quot;&amp;(i+1)&amp;&quot;├&quot;&amp;xiaoqu(i)(1)&amp;&quot;&amp;lt;/option&amp;gt;&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;next&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end if&lt;br/&gt;&amp;nbsp;&amp;nbsp;%&amp;gt;&lt;br/&gt;&amp;lt;/select&amp;gt;&amp;lt;select name=&quot;yuanxi&quot; id=&quot;yuanxi&quot; onchange=&quot;ajax_change(this.value,this.nextSibling);&quot;&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;option value=&quot;-1&quot;&amp;gt;-----请选择院系-----&amp;lt;/option&amp;gt;&lt;br/&gt;&amp;lt;/select&amp;gt;&amp;lt;select name=&quot;zhuanye&quot; id=&quot;zhuanye&quot; onchange=&quot;ajax_change(this.value,this.nextSibling);&quot;&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;option value=&quot;-1&quot;&amp;gt;-----请选择专业-----&amp;lt;/option&amp;gt;&lt;br/&gt;&amp;lt;/select&amp;gt;&amp;lt;select name=&quot;banji&quot; id=&quot;banji&quot;&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;lt;option value=&quot;-1&quot;&amp;gt;-----请选择班级-----&amp;lt;/option&amp;gt;&lt;br/&gt;&amp;lt;/select&amp;gt;&lt;br/&gt;&amp;lt;/body&amp;gt;&lt;br/&gt;&amp;lt;/html&amp;gt;&lt;br/&gt;&lt;/p&gt;

ajax.js
&lt;p class=&quot;code&quot;&gt;//------------------------------------------------------------&amp;nbsp;&amp;nbsp;&lt;br/&gt;//id:接收的id值(用来提供搜索条件)&lt;br/&gt;//node:接收的节点(用来反馈数据插入),通常是指定后面一个select&lt;br/&gt;&amp;nbsp;&amp;nbsp;function ajax_change(id,node){&lt;br/&gt;&amp;nbsp;&amp;nbsp;var xmlhttp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;try{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlhttp=new XMLHttpRequest();&lt;br/&gt;&amp;nbsp;&amp;nbsp;}catch(e){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlhttp=new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);&lt;br/&gt;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;xmlhttp.onreadystatechange=function(){&lt;br/&gt;&amp;nbsp;&amp;nbsp;if (xmlhttp.readyState==4){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (xmlhttp.status==200){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var data=xmlhttp.responseText;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(data)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node.innerHTML=data;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node.innerHTML=&quot;出现错误&quot;;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;xmlhttp.open(&quot;post&quot;,&quot;deal.asp&quot;, true);&lt;br/&gt;&amp;nbsp;&amp;nbsp;xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');&lt;br/&gt;&amp;nbsp;&amp;nbsp;xmlhttp.send(&quot;id=&quot;+escape(id)+&quot;&amp;type=&quot;+escape(node.name));&lt;br/&gt;}&lt;br/&gt;&lt;/p&gt;

deal.asp
&lt;p class=&quot;code&quot;&gt;&amp;lt;%@LANGUAGE=&quot;VBSCRIPT&quot; CODEPAGE=&quot;65001&quot;%&amp;gt;&lt;br/&gt;&amp;lt;!--#include file=&quot;function.asp&quot;--&amp;gt;&lt;br/&gt;&amp;lt;%&lt;br/&gt;&amp;nbsp;&amp;nbsp;id=request.form(&quot;id&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;table_name=request.form(&quot;type&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;str=option_default(table_name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;response.write &quot;&amp;lt;option value=&quot;&quot;-1&quot;&quot; selected&amp;gt;-----请选择&quot;&amp;str&amp;&quot;-----&amp;lt;/option&amp;gt;&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;data=read_table_data(id,table_name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;if IsArray(data) then&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i=lbound(data) to ubound(data)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.write &quot;&amp;lt;option value=&quot;&amp;data(i)(0)&amp;&quot;&amp;gt;&quot;&amp;(i+1)&amp;&quot;├&quot;&amp;data(i)(1)&amp;&quot;&amp;lt;/option&amp;gt;&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;next&lt;br/&gt;&amp;nbsp;&amp;nbsp;end if&lt;br/&gt;%&amp;gt;&lt;br/&gt;&lt;/p&gt;

function.asp
&lt;p class=&quot;code&quot;&gt;&amp;lt;!--#include file=&quot;../conn.asp&quot;--&amp;gt;&lt;br/&gt;&amp;lt;%&lt;br/&gt;'---&amp;gt;函数:read_xiaoqu()&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 功能:返回所有的校区&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 参数:无&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 返回值:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;返回一个数组,格式为((校区id,校区名称),(校区id,校区名称),....)&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 调用:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu=read_xiaoqu()&amp;nbsp;&amp;nbsp;这里,xiaoqu是变量名,可以任意取&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 使用:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu(0)(0)----对应第一个记录的id&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu(0)(1)----对应第一个记录的name,依此类推&lt;br/&gt;&amp;nbsp;&amp;nbsp;function read_xiaoqu()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sql=&quot;select id,name from xiaoqu&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set rs=server.createobject(&quot;adodb.recordset&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;on error resume next&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rs.open sql,conn,1,1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if err&amp;lt;&amp;gt;0 then&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read_xiaoqu=-1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dim xiaoqu_array()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dim i:i=0&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while not rs.eof&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;redim preserve xiaoqu_array(i)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu_id=rs(&quot;id&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu_name=rs(&quot;name&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xiaoqu_array(i)=array(xiaoqu_id,xiaoqu_name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i=i+1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rs.movenext&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wend&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read_xiaoqu=xiaoqu_array&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end if&lt;br/&gt;&amp;nbsp;&amp;nbsp;end function&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;'---&amp;gt;函数:read_table_data(id,table_name)&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 功能:返回对应表的数据&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 参数:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id,对应的父亲id&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;table_name:对应的表名&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;比如:选择了校区的id=2,table_name选择院系yuanxi.因为要从表院系中读取对应pid为2的数据&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 返回值:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;返回一个数组,格式为((id,name),(id,name),....)&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 调用:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data=read_table_data(id,table_name)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这里,data是变量名,可以任意取&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 使用:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data(0)(0)----对应第一个记录的id&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data(0)(1)----对应第一个记录的name,依此类推&lt;br/&gt;&amp;nbsp;&amp;nbsp;function read_table_data(id,table_name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sql=&quot;select id,name from &quot;&amp;table_name&amp;&quot; where pid=&quot;&amp;id&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set rs=server.createobject(&quot;adodb.recordset&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;on error resume next&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rs.open sql,conn,1,1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if err&amp;lt;&amp;gt;0 then&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read_table_data=-1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dim data_array()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dim i:i=0&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while not rs.eof&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;redim preserve data_array(i)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id=rs(&quot;id&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name=rs(&quot;name&quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data_array(i)=array(id,name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i=i+1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rs.movenext&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wend&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read_table_data=data_array&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end if&lt;br/&gt;&amp;nbsp;&amp;nbsp;end function&lt;br/&gt;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&lt;br/&gt;'---&amp;gt;函数:option_default(table_name)&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 功能:返回选择框的头部&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 参数:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;table_name:对应的表名&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 返回值:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;返回一个字符串&lt;br/&gt;'&amp;nbsp;&amp;nbsp; 调用:&lt;br/&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str=option_default(table_name)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这里,str是变量名,可以任意取&lt;br/&gt;&amp;nbsp;&amp;nbsp;function option_default(table_name)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select case table_name&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case &quot;yuanxi&quot;:&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str=&quot;院系&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case &quot;zhuanye&quot;:&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str=&quot;专业&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case &quot;banji&quot;:&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str=&quot;班级&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case else&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str=&quot;出错了&quot;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end select&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;option_default=str&lt;br/&gt;&amp;nbsp;&amp;nbsp;end function&lt;br/&gt;%&amp;gt;&lt;br/&gt;&lt;/p&gt;</description><category>AJAX之旅</category><pubDate>Thu, 04 Oct 2007 01:27:14 +0800</pubDate><author>caolvchong@gmail.com (草履虫)</author><comments>http://cceer.xmu.edu.cn/blog/post/ajax_4_select.html#comment</comments><guid isPermaLink="false">http://cceer.xmu.edu.cn/blog/post/ajax_4_select.html</guid><dc:creator>caolvchong@gmail.com (草履虫)</dc:creator><fs:srclink>http://cceer.xmu.edu.cn/blog/post/ajax_4_select.html</fs:srclink><fs:srcfeed>http://cceer.xmu.edu.cn/blog/rss.xml</fs:srcfeed><fs:itemid>feedsky/caolvchong/~7056654/106965446/5164678</fs:itemid></item><item><title>javascript对象编程规范(个人)</title><link>http://item.feedsky.com/~feedsky/caolvchong/~7056654/106965447/5164678/1/item.html</link><wfw:comment>http://cceer.xmu.edu.cn/blog/</wfw:comment><wfw:commentRss>http://cceer.xmu.edu.cn/blog/sydication.asp?cmt=82</wfw:commentRss><trackback:ping>http://cceer.xmu.edu.cn/blog/cmd.asp?act=tb&amp;id=82&amp;key=96b91766</trackback:ping><description>&lt;font size=&quot;5&quot;&gt;&lt;strong&gt;javascript对象编程规范(个人)&lt;br /&gt;
&lt;br /&gt;
&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 前面两篇介绍了javascript对象编程的基础以及对象的继承.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 在基础篇我们知道如何创建对象,并通过对象编程.当然,我们还必须知道各种创建对象的方法以及他们之间的利弊.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 在对象继承篇我们知道了如何利用对象的继承性质提高代码的可重用性,以及如何根据创建对象方式选择对应的继承方式.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 对于多种创建类/对象的方式,以及对应的创建继承方式,有必要根据自己的习惯,以及更好的编码习惯来规定一种规范.下面是针对自己的javascript创建类/对象的规范.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.如何创建类/对象&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 使用&amp;quot;混合构造函数/原型方式&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.怎么继承&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 对应创建,采用&amp;quot;混合方式&amp;quot;进行继承&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 采用之前写的一个例子.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; function beauty(name,age){&amp;nbsp;&amp;nbsp;&amp;nbsp; //基类:美女,这里采用构造函数方式,接收参数,设置类的属性&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.name=name;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //美女的名字&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.age=age;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //美女的年龄&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; beauty.prototype.say=function(){&amp;nbsp;&amp;nbsp;&amp;nbsp; //基类:为美女添加方法,采用原型方式&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; alert(&amp;quot;小女叫&amp;quot;+this.name);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; function china_beauty(name,age,area){&amp;nbsp;&amp;nbsp;&amp;nbsp; //派生类:中国美女&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; beauty.call(this,name,age);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //继承美女的属性&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;