-----------------------------------------------------------------
emu
还有几个经典问题:在网上看到一个效果不错,下回来以看是VBSCRIPT的,用JSCRIPT好象就是做不来(比如把confirm的焦点默认在取消上?),:-((在书店看到一本书也不错,看一下封底:¥×××大元,:-((在csdn发现一个网友有点意思,探究一下是GG还是JJ,却发现是个历史悬案,:-((
http://www.csdn.net/expert/topic/728/728382.xml?temp=.5561945-----------------------------------------------------------------
chenzengxi
异步调用在WebService里面应用的可能比较广泛,可以同一时间对服务器进行多次访问,从而加速数据的提取速度。
还有我发现,在例如一个目录树里做全展开操作,同步递归的效果是完成才看到显示,异步递归的效果是看到一层层显示到全部,呵呵,很有意思。还有关于字符串累加的讨论,其实是很实用的,我就有大量的这样应用:
http://www.csdn.net/expert/topic/752/752688.xml?temp=.1573297还有不知道算不算IE6的BUG一个:
http://www.csdn.net/expert/topic/724/724539.xml?temp=6.451052E-02-----------------------------------------------------------------
chenzengxi
HTA(HTML Applications),是个挺好的东西,HTML应用程序,不过我发现限制蛮多的,还要有IE的支持才能运行.
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/hta/reference/objects/hta.asp
不知道那有详细的中文资料呀?-----------------------------------------------------------------
Lostinet
>>>>在网上看到一个效果不错,下回来以看是VBSCRIPT的,用JSCRIPT好象就是做不来(比如把confirm的焦点默认在取消上?),:-((那个是VBS提供的内置函数,起源于VB。
JScript是没有提供这个的。>>>>>还有我发现,在例如一个目录树里做全展开操作,同步递归的效果是完成才看到显示,异步递归的效果是看到一层层显示到全部,呵呵,很有意思。异步问题如果是简单的还好,例如,整个过程都只是一个完整的程序进行,没有任何打扰。
但是经常遇到的问题是,过程到了一般,可能要求返回,或者取消,或者要求把整个对象系都要删除。
(例如展开了一个菜单。但是用户由立刻把它关闭。)
处理这些突法事件很麻烦。对象必须能够自主地完成这些取消的工作。
不同的异步模块还要定一个协议,说明现在是否能取消,情况怎样等等。
这在DHTML下却是很麻烦的事情。-----------------------------------------------------------------
Lostinet
HTA(HTML Applications),没有什么好说明的。
你只需要知道,它的权限很大就够了。
在HTA,可以访问任何域名下的资源,和本地资源。
--------------
MICROSOFT。NET的更新程序也是用HTA来做框架的。-----------------------------------------------------------------
Lostinet
对于前面的更正
parseInt(elementA.currentStyle.isVisited)?"yes":"no"-----------------------------------------------------------------
chenzengxi
to  Lostinet
你说的问题,还确实是个问题,那是最严谨的做法,虽然操作者可能永远都不会这样操作,谢谢你提醒。-----------------------------------------------------------------
chenzengxi
Lostinet兄能不能写个HTA对Access的增删改的例子。-----------------------------------------------------------------
chenzengxi
我另开一个贴子吧,呵呵。-----------------------------------------------------------------
emu
早该如此了,我这个帖子早已跑题了。-----------------------------------------------------------------
Lostinet
讨论无边界嘛。何必拘谨于形式呢。。
:)-----------------------------------------------------------------
Lostinet
讨论无边界嘛。何必拘谨于形式呢。。
:)-----------------------------------------------------------------
emu
我的本意一方面是想让后来者知道他们有哪些坎要过,一方面想从高手那里知道自己还有那些坎要过。跑题了就达不到原来的目的了。-----------------------------------------------------------------
qiushuiwuhen
跑得好,最好永不结贴,永远跑下去,让大家都来关注和收藏....地球是圆的,只要有恒心,南辕北辙都行-----------------------------------------------------------------
linhaibo
写 HTC 吧...
模仿 Delphi 里面的控件.
HTC思路很好,速度却不能叫人满意(可能是我的写法问题). :(-----------------------------------------------------------------
linhaibo
浏览器和应用程序的交互也是个问题.
类似QQ聊天室的操作就是比较成功的例子他们把捕获浏览器的页面跳转事件带来的参数 传递给 应用程序.
应用程序通过 IE 控件可以再直接修改网页内容.我想,应用程序向“半Web页”方面转换也是个趋势
固定部分用应用程序完成,其他的都可以用 网页来实现。-----------------------------------------------------------------
emu
这算哈希表吗?<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<body><SCRIPT LANGUAGE="JavaScript">
<!--
var ar = new Array();
ar["abc"] = "123";
ar["def"] = "456";
alert(ar["abc"]);
alert(ar["def"]);
//-->
</SCRIPT></body>
</html>在秋水发给我的东西里面发现的用法。如果是哈希表,怎么遍历它呢?-----------------------------------------------------------------
emu
哦,这么遍历:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<body><SCRIPT LANGUAGE="JavaScript">
<!--
var ar = new Array();
ar["abc"] = "123";
ar["def"] = "456";for (a in ar)
    alert(a+":"+ar[a])
//-->
</SCRIPT></body>
</html>今天又学到一招,谢谢秋水。-----------------------------------------------------------------
emu
每个程序员都要过这几道关口:程序写好了,忘存就把窗口关了,更该死的是还按了确定!程序保存了,但是不小心删了,更该死的是顺手清了回收站(有些初学者不知从哪学来的坏习惯,还有用惯了苹果电脑的家伙们也是)程序保存了,没有不小心删了,只是从vss上get了一个旧的lastestVersion吧它replace了(唉,我昨晚干的好事就是)。没有进行任何误操作,只是硬盘忽然就罢工了,拿去维修时还被告知无法恢复数据(我打赌十有八九是IBM的,这两年的IBM硬盘听说都是国产的,据说产地就是深圳,不但爱罢工,而且压根恢复不了数据,现在已排为最低性价比硬盘了,使用IBM硬盘的诸位赶快刻光盘罢)硬盘没坏,只是机器忽然掉电了,scandisk(chkdsk?fsck?)时报了点儿错(天,早说了不要用FAT和EXT2了)。什么坏事也没干,系统崩溃了。-----------------------------------------------------------------
emu
新问题:计算误差问题,我今天碰上了。看看秋水写的例子:<script>
for(s=2;s<=10;s++){
var c=0;
for(n=1;n<100;n++)
for(p=1;p<=100000;p*=s){
t=n/(n/p)
if(p!=t)document.write((++c)+"."+n+"/"+p+"="+t+"<br>")
}
document.write(s+" is over:"+c+"<br>")
}
</script>-----------------------------------------------------------------
Lostinet
计算误差是语言问题,,-----------------------------------------------------------------
emu
http://www.csdn.net/expert/topic/789/789880.xml?temp=.7990534-----------------------------------------------------------------
emu
关于树图的补充:孟版主的xml树图现在可以下载了,挺有意思的,大家来看呐:http://lucky.myrice.com/temp/XML.zip

http://colorweb.go.163.com/temp/XML.zip

http://go2.163.com/stonelf/tools/deeptree1.zip-----------------------------------------------------------------
emu
新发现:IE5的数组越界bug:
<html>
<body>
<SCRIPT>
ar = []
try
    {
    ar.length--
    }
catch (e)
    {
    alert(e.message)
    }
alert("数组长度:"+ar.length)
</SCRIPT>
</body>
</html>在IE6下正常-----------------------------------------------------------------
Lostinet
应该是这样把:
JScript5.0(IE5.0)下
arrayInstance.length是只读的。。
JScript5.5(IE6.0)下
arrayInstance.length=arrayInstance.length-1
的时候arrayInstance.length已经是新的属性了。-----------------------------------------------------------------
emu
to  Lostinet([思考太多]~[走火入魔]) :Array 的length属性不是只读的。因为Array.pop()要到javascript1.2+才开始支持,所以在IE5下面,我都只能用Array.length--来实现pop元素。-----------------------------------------------------------------
emu
呵呵,没有星星的,不许蒙emu!-----------------------------------------------------------------
xg_delayth
提一个看看大家是否注意过的bug
用showModelDialog打开一个只有一个控件的页面时(如只有<input type=text name=test value="测 试">)在输入框中回车有什么结果。
在IE5.5和IE6.0中有-----------------------------------------------------------------
bcboy
这么多高手!!!
占个位,问个水问题:
有没有办法修改web ser

解决方案 »

  1.   

    -----------------------------------------------------------------
    nature123
    对不起高手们问个问题第一个帖子中的“ 把select框放到别的元素后边,这是不行的,只能隐藏它”这句什么意思-----------------------------------------------------------------
    emu
    我们在网页上面可以把元素一个个的堆砌上去,也可以用table来把它们框在指定的位置,还可以通过style对象进行绝对定位,把元素想放哪就放哪:
    <html>
    <body>
    <span style="position:absolute;top:100;left:100"><input value="aaaaaaaaaaaaaaa"></span>
    <span style="position:absolute;top:200;left:150"><input value="bbbbbbbbbbb"></span>
    </body>
    </html>
    这个特性有时也可以用来移动元素:
    <html>
    <body>
    <span style="position:absolute;top:100;left:100" id=span1><input value="aaaaaaaaaaaaaaa"></span>
    <span style="position:absolute;top:200;left:80" id=span2><input value="bbbbbbbbbbbbbbb"></span>
    </body>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    setInterval("move()",30)
    var direction = 10;
    function move()
        {
        var t = parseInt(span1.style.top);
        if (t>300) direction = -10;
        if (t<100) direction = 10;
        span1.style.top =(t+direction)
        }
    //-->
    </SCRIPT>
    </html>
    但是在随意定位或者移动的时候它们有可能就会重叠到。这个时候我们可能就需要定义谁在谁的上面。一般我们可以通过style对象的zIndex属性来舍得谁在前面(整数值,值越大的越靠前):
    <html>
    <body>
    <span style="position:absolute;top:100;left:100" id=span1><input value="aaaaaaaaaaaaaaa"></span>
    <span style="position:absolute;top:200;left:80" id=span2><input value="bbbbbbbbbbbbbbb"></span>
    </body>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    setInterval("move()",30)
    var direction = 3;
    function move()
        {
        var t = parseInt(span1.style.top);
        if (t>300) direction = -3;
        if (t<100) direction = 3;
        span1.style.top =(t+direction) ;//移动元素
        span1.style.zIndex = direction ;//设定它的层
        }
    //-->
    </SCRIPT>
    </html>但是select元素毕竟古怪,它不肯躲在别人背后的:
    <html>
    <body>
    <span style="position:absolute;top:100;left:100" id=span1><input value="aaaaaaaaaaaaaaa"></span>
    <span style="position:absolute;top:200;left:80" id=span2><select><option>bbbbbbbbbbbbb</option></select></span>
    </body>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    setInterval("move()",30)
    var direction = 3;
    function move()
        {
        var t = parseInt(span1.style.top);
        if (t>300) direction = -3;
        if (t<100) direction = 3;
        span1.style.top =(t+direction) ;//移动元素
        span1.style.zIndex = direction ;//设定它的层
        }
    //-->
    </SCRIPT>
    </html>这就是我在前面说的意思了。当然也不是绝对不行,听说有一些网站上可以做到的。它们经常让广告窗口从select上面越过。我还没时间去分析出来它的原理。以前我们一般是把它隐藏起来,在原位置显示一个input的。<html>
    <body>
        <span style="position:absolute;top:200;left:80" id=span2 onmouseover="this.firstChild.style.display='block' ; this.children[1].style.display='none' " onmouseout="this.firstChild.style.display='none' ; this.children[1].style.display='block' ">
            <select  style="display:none"><option>bbbbbbbbbbbbb</option></select>
            <input value="bbbbbbbbbbbbbbbb" size=15>
        </span>
        <span style="position:absolute;top:100;left:100" id=span1><input value="aaaaaaaaaaaaaaa"></span>
    </body>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    setInterval("move()",30)
    var direction = 3;
    function move()
        {
        var t = parseInt(span1.style.top);
        if (t>300) direction = -3;
        if (t<100) direction = 3;
        span1.style.top =(t+direction) ;//移动元素
        }
    //-->
    </SCRIPT>
    </html>-----------------------------------------------------------------------
    nature123
    一说我明白了,我常遇到的select的预先级是很高,它都可以跃出页面:)
    有时是不方便,但有时这个特性还很有用,比如下边是个大activex,别的菜单都盖不住它,可select可以:)-----------------------------------------------------------------------
    chenzengxi
    呵呵,昨天发现的一个css小问题,搞了我半天,今天才知道怎么回事。
    如果css是存在一个文件里的,当里面用相对路径时,应该用的是相对于这个css文件的路径,和调用它的文件无关,比如:-- css.css  (css/css.css) --
    background-image:url(../images/buttonbg.gif);我昨天犯的就是:
    background-image:url(images/buttonbg.gif);
    因为调用它的文件(index.htm)在根目录,图片在images里,搞了半天就是没效果,今天睡醒了,加了两个../就好了,呵呵.
      

  2.   

    也是一个老问题了。我现在一般都让所有图片、js、css等引用的地址都写为相对于发布目录的("/jsp/images...")。因为如果通过servlet把连接转向了,相对地址的计算就会出错。
    为了处理上面的帖子,刚刚又写了一个js小程序来替换特殊字符(大于号、小于号、回车、制表符),也许对别人也有用。function String.prototype.change()
    {
    var str = this;
    while (str.indexOf("<") >= 0) 
    str = str.replace("<","&lt;");
    while (str.indexOf(">") >= 0) 
    str = str.replace(">","&gt;");
    while (str.indexOf("\n") >= 0) 
    str = str.replace("\n","<br>");
    while (str.indexOf(" ") >= 0) 
    str = str.replace(" ","&nbsp;");
    while (str.indexOf("\t") >= 0) 
    str = str.replace("\t","&nbsp;&nbsp;&nbsp;&nbsp;");
    return (str);
    }
    用法:document.write("<script>alert()</script>".change())上面的帖子就是这么处理出来的。
      

  3.   

    我现在回贴要谨慎,超过30个就不能再回了。天,想不通干嘛要做这样的限制,明显只限制到那些不该被限制的帖子嘛。要是一个帖子一个人回了30次还在回,肯定是在讨论一些有意思的东西了,干嘛不让人把话说完呢?顺便贴一点代码上来,回一次就少一次了啊!嗯,以后长的代码就不直接贴上来了,我找个地方上传了,再把连接贴过来,这样帖子才不会快高长大。就贴一个一行的函数上来吧:
    function String.prototype.trim(){return  this.replace(/(^\s*)|(\s*$)/g, "");}这是javascript板的trim()函数,去除前后空格。用法也直接:
    alert("  abc  ".trim());
      

  4.   

    收藏,function String.prototype.change(),这个函数里用while做判断,我感觉怪怪的。
      

  5.   

    <<修改web server端的word文件并能保存(在web端)?看看是不是想这样如果使用控件,可以这样asp中给页面文件的路径参数,ocx启动,获取word文件,隐藏浏览器,启动word,捕捉Close事件(Save事件如果是word2000),保存临时文件,关闭word,显示浏览器(也可以不显示),发出http请求,模拟文件上传,存入服务器,给个信息提示,结束。如果做的粗糙一点,应该可以满足要求。
      

  6.   

    to chaoyueBetter(顽玉):
    不用while还能用什么呢?
    这段代码其实不是100%原创的,框架是从csdn的xsl里面抄来的。(http://www.csdn.net/expert/Xsl/2.xsl),这个网页用的就是这个xsl不信你查一下网页源码第二行。我只是添加了对“<”和“>”的判断而已。今晚还帮人做了一个字符串逻辑运算的javascript,要实际拿来加密解密还不行,不过有了这个框架,下面的就容易了。所以也把连接贴在这里:http://www.csdn.net/expert/topic/811/811070.xml?temp=.283291
      

  7.   

    呵呵,你是男的还是女的?今天带来一点好玩一点的东西,本来想上传到主页上给下载的,可是网易的go控件罢工了,只好又让俺的帖子快高长大一回了(呜呜~~,谁帮我找个可靠点的免费空间?看我都在吐血奉献了......)。<html xmlns:v="urn:schemas-microsoft-com:vml">
    <head>
    <STYLE>
     v\:* { BEHAVIOR: url(#default#VML) }
    </STYLE>
    <title>emu</title>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function drawpie(src)
    {
    var ar = new Array(src.length);
    var sum=0;
    for (var i=0;i<src.length;i++)
    sum += src[i][1];
    var maxScale = 360<<16
    for (var i=0;i<src.length;i++)
    ar[i]=src[i][1]/sum;
    var coordsize = 400;
    var halfcoordsize = 200;
    var colors = ["#FF0000","#3366FF","#33CC33","#990000","#9966FF","#FF33CC","#006666"]
    var result = "<center><v:group style='width:300px;height:300px;top:0'  CoordSize='"+coordsize+","+coordsize+"'>\n"
    var sum=0;
    for (var i=0;i<ar.length;i++)
    {
    var st = "m"+halfcoordsize+","+halfcoordsize+" ae"+ halfcoordsize+","+ halfcoordsize+","+halfcoordsize+","+halfcoordsize+","+parseInt(sum*maxScale)+","+parseInt( ar[i] * maxScale)+ "xe"; st=  "<v:shape fillcolor='"+colors[i]+"'  coordsize='"+coordsize+","+coordsize+"'  style='width:"+coordsize+"px;height:"+coordsize+"px;  position=absolute' path='"+st+"' Title='"+src[i][0]+":"+src[i][1]+"'/>";
    sum += ar[i];
    result +=st }
    //画图例
    for (var i=0;i<ar.length;i++)
    {
    result += "<v:rect  style='Z-INDEX:0;top:"+(i*35)+";left:" +(coordsize+50)+";width:30;height:30;position:absolute' strokecolor='white' fillcolor='"+colors[i]+"'></v:rect>"
    result += "<v:rect  style='Z-INDEX:0;top:"+(i*35+5)+";left:" +(coordsize+80)+";width:"+(src[i][0].length*10)+";height:90;position:absolute' strokecolor='white'>"
    result += "<v:TextBox inset='0,0,0,0' style='font-size:10.2pt;'>"+src[i][0]+"</v:TextBox></v:rect>"
    }
    result +="</v:group></center>";
    return result;
    }
    function tbody2array(t)
    {
    var elm=t.children;
    var result = new Array()
    for (var i=0;i<elm.length;i++)
    {
    var tmp = new Array();
    tmp[0]=elm[i].children[0].innerText
    tmp[1]=parseInt(elm[i].children[1].innerText)
    result [result.length]=tmp;
    }
    return (result);
    }
    function buildPie(t)
    {
    div1.innerHTML = drawpie(tbody2array(t))
    }//-->
    </SCRIPT>
    </head>
    <body>
    <TABLE>
    <tr>
    <td colspan=3>
    看看javascript版上的分都落在哪些家伙的手里
    </td>
    </tr>
    <tr>
    <td>
    <table>
    <thead><tr><td colspan=2><input type=radio name=radios onclick="buildPie(tbody1)"></td></tr></thead>
    <tbody id=tbody1 style="font-size:14">
    <TR>
    <TD>qiushuiwuhen</TD>
    <TD>3330</TD>
    </TR>
    <TR>
    <TD>net_lover</TD>
    <TD>2339</TD>
    </TR>
    <TR>
    <TD>seabell</TD>
    <TD>1544</TD>
    </TR>
    <TR>
    <TD>chenzengxi</TD>
    <TD>1075</TD>
    </TR>
    </tbody>
    </table>
    </td>
    <td>
    <table>
    <thead><tr><td colspan=2><input type=radio name=radios onclick="buildPie(tbody2)"></td></tr></thead>
    <tbody id=tbody2 style="font-size:14">
    <TR>
    <TD>net_lover</TD>
    <TD>2798</TD>
    </TR>
    <TR>
    <TD>weidegong</TD>
    <TD>1424</TD>
    </TR>
    <TR>
    <TD>seabell</TD>
    <TD>1265</TD>
    </TR>
    <TR>
    <TD>qiushuiwuhen</TD>
    <TD>3769</TD>
    </TR>
    </tbody>
    </table>
    </td>
    <td>
    <table>
    <thead><tr><td colspan=2><input type=radio name=radios onclick="buildPie(tbody3)"></td></tr></thead>
    <tbody id=tbody3 style="font-size:14">
    <TR>
    <TD>weidegong</TD>
    <TD>1424</TD>
    </TR>
    <TR>
    <TD>seabell</TD>
    <TD>1265</TD>
    </TR>
    <TR>
    <TD>qiushuiwuhen</TD>
    <TD>3769</TD>
    </TR>
    <TR>
    <TD>net_lover</TD>
    <TD>2798</TD>
    </TR>
    </tbody>
    </table>
    </td>
    </tr>
    <tr>
    <td colspan=3 height=300>
    <div id=div1>
    </div>
    </td>
    </tr>
    </TABLE>
    </body>
    </html>
    注意,drawpie函数可以直接分离出来,放到一个js文件里面的。只要给它一个二维数组(n*2),它就乖乖的输出来一段html代码。插入一个div里面或者write到document上面就可以了。写这个程序的时候顺便解决了linhaibo教程里面关于ae的一个疑问。原来要吧角度左移16位或者乘以65536才对啊。
      

  8.   

    javascript在进行大量运算的时候就失去响应能力,这肯定也是每个jser都迟早要头疼的问题。前几天为了一个这样的帖子写了下面的代码,示范了一下怎么在运算过程响应。大家多提意见啊:<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title></title>
    </head>
    <body>
    <div id=ttText style="display:none">
    程序运行中......<BR>
    <span id=currentState></span> &nbsp; <button onclick="CANCLE = true;">停止</button><BR>
    </div>
    <button onclick="run_step1()" id=button1>开始</button>
    <span id=result></span>
    <script>
    var i=0;
    var sum =0;
    var CANCLE = false;
    var max = 1000000; //循环的终点
    var step = 9999; //步长:选择合适的步长可以在响应能力和计算速度上获得比较好的折衷。
    //(步长用9999而不是10000只是为了显示的时候好看,其实都一样)
    var timeStart = "";
    function run_step1()
    {
    if (i == 0)timeStart = new Date();
    ttText.style.display="";
    button1.style.display="none";
    setTimeout("run_step2()",1);
    CANCLE = false;
    }
    function run_step2()
    {
    if (CANCLE) 
    {
    ttText.style.display="none";
    button1.style.display="";
    button1.value="继续";
    return;
    }
    if (i == null)
    {
    //初始化
    //注意:这里不能写var,因为循环变量和结果都为全局变量。
    i = 1;
    sum = 0;
    run_step2();
    }
    else if (i<=max)
    {
    var endValue = i+step;
    if (endValue >max) endValue = max+1;
    for (j=i; j<endValue ; j++)
    sum += j;
    i+=step;
    currentState.innerText = i;
    result.innerText = "临时结果:"+sum;
    setTimeout("run_step2()",0);
    }
    else
    {
    run_step3();
    }
    }
    function run_step3()
    {
    ttText.style.display="none";
    button1.style.display="";
    button1.value="重新开始";
    result.innerText = "最终结果"+sum+" 用时:"+(new Date-timeStart)/1000+"秒"
    sum = 0;
    i = 0;
    }
    </script>
    </body>
    </html>
      

  9.   

    async:
    http://lostinet.d2g.com/lostinet-Publish/JScriptSoapClient/eg2.htm
      

  10.   

    async:
    http://lostinet.dns2go.com/sarc/chat.asp
      

  11.   

    紧急更正:
    setTimeout("run_step2()",0);
    应改为:
    setTimeout("run_step2()",20);
    不然在一些低配置的机器上占用过多cpu资源可能造成系统不稳定。
      

  12.   

    呵呵lostinet不要留一手嘛:http://lostinet.d2g.com/lostinet-Publish/JScriptSoapClient/JSCRIPTSOAPCLIENT.JS关键在于:
    xh.open("GET",url,true,username,password);
    对吧?我手头没有资料可以查,中间的true是 xh.async=true 的意思吗?
      

  13.   

    困了,玩个加密提提神:<html>
    <body>
    <SCRIPT>
    function String.prototype.xor(str) //异或操作,也就是通用的对称加密、解密操作
    {
    var result="",l=Math.min(str.length,this.length);
    for (var i=0;i<l;i++)result+=String.fromCharCode(this.charCodeAt(i)^str.charCodeAt(i));
    return result;
    }var key = "我爱北京天安门";  // 这里是密钥,当真做的时候当然不能直接写在网页上var encoded = "%u09C5%u2E25%uD8F2%u25D7%u3F06%u0863%uE6C2 " //密文alert( unescape(encoded).xor(key) ) </SCRIPT>
    </body>
    </html>
      

  14.   

    a =((a|b)-(a&b))^b
    =(b^(a|b))+(a&b)
    =(b-(a&b))^(a|b)
      

  15.   

    a =((a|b)-(a&b))^b
    =(b^(a|b))+(a&b)
    =(b-(a&b))^(a|b)
      

  16.   

    那又如何呢?有一个xor(^)已经够用啦。
      

  17.   

    呵呵,我怀疑这里的javascript高手们很多都有java背景的,你说对不? :-PADSL的免费期今天已经过了,差了几十分没捞到第五个小三角形 :-(( ,四个就四个吧,知足了。
      

  18.   

    http://colorweb.go.163.com/CodeLib/XML/deeptree.htm
    这个树纯粹的100%的就是微软msdn站点的树
    我看了源代码, 连deeptree.css和<div id="deeptree" class="deeptree" CfgXMLSrc="deeptreeconfig.xml">都未改
    并不是版主写的,对吧大家可以看看msdn.microsoft.com的树菜单里面使用了xslt转换xml
      

  19.   

    1.拙见:js很多语法需要的是C基础没有C基础的并不是真正的java高手
    就像没有java基础的并不是真正的jsp高手
    就像写C的高手同样需要掌握数据结构和操作系统虽然一样能编出程序来,但底层东西呢?
    充其量只能算使用工具的高手罢了2.斑竹并不是神话,只是善于积累和归纳罢了,
    最主要的是要看是否能用平常心去乐于助人
    就像这次世界杯的传统强队,一样可以被击溃的
    因为世界在进步,你不奋勇向前就只能急流勇退
      

  20.   

    1.拙见:js很多语法需要的是C基础没有C基础的并不是真正的java高手
    就像没有java基础的并不是真正的jsp高手
    就像写C的高手同样需要掌握数据结构和操作系统虽然一样能编出程序来,但底层东西呢?
    充其量只能算使用工具的高手罢了2.斑竹并不是神话,只是善于积累和归纳罢了,
    最主要的是要看是否能用平常心去乐于助人
    就像这次世界杯的传统强队,一样可以被击溃的
    因为世界在进步,你不奋勇向前就只能急流勇退
      

  21.   

    看看这个clock真正的cool<html xmlns:v>
    <head>
    <title>Cool</title>
    <!-- VML include -->
    <style>
    <!--
    v\:* {
    behavior: url(#default#VML);
    }
    -->
    </style>
    <!-- end VML include --><style type="text/css"> 
    <!--
    body {margin: 0px; font-family: verdana; font-size: 12px; overflow: hidden;}
    -->
    </style>
    </head>
    <body >
    <table>
    <tr>
    <td></td>
    <td></td>
    <td></td>
    <td>
    <v:group id="clock" coordsize="100 100" style="position: relative;">
    <v:oval style="width: 100%; height: 100%">
    <v:stroke weight="10px" color="#eeeeee"/>
    <!-- I removed this gradient fill to match the WebFX color theme
    <v:fill type="gradient" color="white" color2="#eeeeff" angle="225deg"/>
     -->
    </v:oval> <v:group id="secondsPointer" style="width: 100%; height: 100%; position: absolute; top: 0px; left: 0px;">
    <v:line from="50,50" to="50,5">
    <v:stroke weight="2px" endcap="round" color="navy"/>
    </v:line>
    </v:group> <v:group id="minutesPointer" style="width: 100%; height: 100%; position: absolute; top: 0px; left: 0px;">
    <v:line from="50,50" to="50,8">
    <v:stroke weight="4px" endcap="round" color="navy"/>
    </v:line>
    </v:group> <v:group id="hoursPointer" style="width: 100%; height: 100%; position: absolute; top: 0px; left: 0px;">
    <v:line from="50,50" to="50,18">
    <v:stroke weight="7px" endcap="round" color="navy"/>
    </v:line>
    </v:group></v:group>
    </td>
    </tr>
    </table><script type="text/javascript">
    <!--
    function updatePointers() {
    var now = new Date();

    secondsPointer.style.rotation = now.getSeconds() * 6;
    minutesPointer.style.rotation = now.getMinutes() * 6 + now.getSeconds() / 10;
    hoursPointer.style.rotation = now.getHours() * 30  + now.getMinutes() / 2;
    }window.attachEvent("onload", initVMLClock);
    window.attachEvent("onresize", resizeObjects);function initVMLClock() {
    resizeObjects();
    updatePointers();
    window.setInterval("updatePointers()", 1000);
    }function resizeObjects() {
    var size = Math.min(document.body.offsetWidth, document.body.clientHeight);
    clock.style.pixelWidth = size - 2*(size * 0.045);
    clock.style.pixelHeight = size - 2*(size * 0.045);
    clock.style.left = size * 0.04 + (document.body.clientWidth - size) / 2;
    clock.style.top = size * 0.04 + (document.body.clientHeight - size) / 2;

    clock.childNodes.item(0).childNodes.item(0).weight = size * 0.01; secondsPointer.childNodes.item(0).childNodes.item(0).weight = size * 0.001;
    minutesPointer.childNodes.item(0).childNodes.item(0).weight = size * 0.002;
    hoursPointer.childNodes.item(0).childNodes.item(0).weight = size * 0.004;

    }function toggle(sId) {
    var el = document.getElementById(sId);

    el.style.display = (el.style.display == "none") ? "block" : "none";
    }//-->
    </script></body>
    </HTML>
      

  22.   

    呵呵,两天都没有办法上网。deeptree确实来自微软的。在deeptree.htc里面写着:
    //-----------------------------------------------
    // Copyright ?2001 Microsoft Corporation
    //
    // Author(s): Grant Harris
    //            Bryn Waibel
    //
    //-----------------------------------------------
    秋水的话把我吓出一身冷汗。我是不懂c的,从来就抗拒。印象中写过的c程序大概有10个左右,都是为了交作业。感觉上javascript更接近于java。小李飞猪的时钟是不是从http://www.csdn.net/expert/topic/815/815340.xml?temp=.5294763 上贴过来的?呵呵。
      

  23.   

    倒,,C没有学过,,C++就学了两年。写共享软件还不够火候,所以转行写ASP了。。
      

  24.   

    哦,我现在才知道,我要学C,
    我只学过asp和jsp。
    高手们都来帮帮我怎么学C?
      

  25.   

    to emu(ston) : 我很久没有来csdn了。那个时钟是我从一个国外网站找资料的时候发现的。
        国内很多的dhtml,js站点内容都很浅,建议大家多到国外看看,不要怕英文,多多学习
      

  26.   

    我刚才看了http://www.csdn.net/expert/topic/815/815340.xml?temp=.5294763没想到你给的那个网站就是我去过的...真巧
      

  27.   

    这个时钟不错
    <SCRIPT language=JavaScript>fCol='FFFFFF';//face colour.dCol='FF5959';//dot colour.hCol='D8D8D8';//hours colour.mCol='D8D8D8';//minutes colour.sCol='FF5959';//seconds colour.ClockHeight=40;ClockWidth=40;ClockFromMouseY=80;ClockFromMouseX=0;//Alter nothing below! Alignments will be lost!ns=(document.layers);ie=(document.all);h=3;m=4;s=5;face='Y O U T H Y E A R .C O M';face=face.split(' ');n=face.length;speed=0.5;ymouse=0;xmouse=0;scrll=0;p="<font face=Arial size=1 color="+fCol+">";e=360/n;HandHeight=ClockHeight/5;HandWidth=ClockWidth/5;HandY=0;HandX=0;scrll=0;y=new Array();x=new Array();Y=new Array();X=new Array();for (i=0; i < 37; i++){y[i]=0;x[i]=0;Y[i]=0;X[i]=0}Dy=new Array();Dx=new Array();DY=new Array();DX=new Array();for (i=0; i < n; i++){Dy[i]=0;Dx[i]=0;DY[i]=0;DX[i]=0}if (ns){for (i=0; i < n; i++)document.write('<layer name="nsN'+i+'" top=0 left=0 height=15 width=15><center>'+p+face[i]+'</font></center></layer>');for (i=0; i < n; i++)document.write('<layer name="nsD'+i+'" top=0 left=0 bgcolor='+dCol+' clip="0,0,2,2"></layer>');for (i=0; i < h; i++)document.write('<layer name=nsH'+i+' top=0 left=0 bgcolor='+hCol+' clip="0,0,2,2"></layer>');for (i=0; i < m; i++)document.write('<layer name=nsM'+i+' top=0 left=0 bgcolor='+mCol+' clip="0,0,2,2"></layer>');for (i=0; i < s; i++)document.write('<layer name=nsS'+i+' top=0 left=0 bgcolor='+sCol+' clip="0,0,2,2"></layer>');}if (ie){document.write('<div id="On" style="position:absolute;top:0px;left:0px"><div style="position:relative">');for (i=0; i < n; i++)document.write('<div id="ieN" style="position:absolute;width:15px;height:15px;text-align:center">'+p+face[i]+'</font></div>');document.write('</div></div>');document.write('<div id="Od" style="position:absolute;top:0px;left:0px"><div style="position:relative">');for (i=0; i < n; i++)document.write('<div id="ieD" style="position:absolute;height:2px;width:2px;font-size:2px;background:'+dCol+'"></div>');document.write('</div></div>');document.write('<div id="Oh" style="position:absolute;top:0px;left:0px"><div style="position:relative">');for (i=0; i < h; i++)document.write('<div id="ieH" style="position:absolute;width:2px;height:2px;font-size:2px;background:'+hCol+'"></div>');document.write('</div></div>');document.write('<div id="Om" style="position:absolute;top:0px;left:0px"><div style="position:relative">');for (i=0; i < m; i++)document.write('<div id="ieM" style="position:absolute;width:2px;height:2px;font-size:2px;background:'+mCol+'"></div>');document.write('</div></div>')document.write('<div id="Os" style="position:absolute;top:0px;left:0px"><div style="position:relative">');for (i=0; i < s; i++)document.write('<div id="ieS" style="position:absolute;width:2px;height:2px;font-size:2px;background:'+sCol+'"></div>');document.write('</div></div>')}(ns)?window.captureEvents(Event.MOUSEMOVE):0;function Mouse(evnt){ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):event.y+ClockFromMouseY;xmouse = (ns)?evnt.pageX+ClockFromMouseX:event.x+ClockFromMouseX;}(ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;function ClockAndAssign(){time = new Date ();secs = time.getSeconds();sec = -1.57 + Math.PI * secs/30;mins = time.getMinutes();min = -1.57 + Math.PI * mins/30;hr = time.getHours();hrs = -1.575 + Math.PI * hr/6+Math.PI*parseInt(time.getMinutes())/360;if (ie){On.style.top=window.document.body.scrollTop;Od.style.top=window.document.body.scrollTop;Oh.style.top=window.document.body.scrollTop;Om.style.top=window.document.body.scrollTop;Os.style.top=window.document.body.scrollTop;}for (i=0; i < s; i++){ var sd=(ns)?document.layers['nsS'+i]:ieS[i].style; sd.top=y[8+i]+HandY+(i*HandHeight)*Math.sin(sec)+scrll; sd.left=x[8+i]+HandX+(i*HandWidth)*Math.cos(sec);}for (i=0; i < m; i++){ var md=(ns)?document.layers['nsM'+i]:ieM[i].style; md.top=y[4+i]+HandY+(i*HandHeight)*Math.sin(min)+scrll; md.left=x[4+i]+HandX+(i*HandWidth)*Math.cos(min);}for (i=0; i < h; i++){ var hd=(ns)?document.layers['nsH'+i]:ieH[i].style; hd.top=y[1+i]+HandY+(i*HandHeight)*Math.sin(hrs)+scrll; hd.left=x[1+i]+HandX+(i*HandWidth)*Math.cos(hrs);}for (i=0; i < n; i++){ var D=(ns)?document.layers['nsD'+i]:ieD[i].style;  D.top=y[13+i] + ClockHeight*Math.sin(-1.0471 + i*e*Math.PI/180)+scrll; D.left=x[13+i] + ClockWidth*Math.cos(-1.0471 + i*e*Math.PI/180);}for (i=0; i < n; i++){ var N=(ns)?document.layers['nsN'+i]:ieN[i].style;  N.top=y[25+i]-6 + ClockHeight*1.4*Math.sin(-1.0471 + i*e*Math.PI/180)+scrll; N.left=x[25+i]-6 + ClockWidth*1.4*Math.cos(-1.0471 + i*e*Math.PI/180);}}function Delay(){scrll=(ns)?window.pageYOffset:0;y[0]=Math.round(Y[0]+=((ymouse)-Y[0])*speed);x[0]=Math.round(X[0]+=((xmouse)-X[0])*speed);for (i=1; i < 37; i++){y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*speed);x[i]=Math.round(X[i]+=(x[i-1]-X[i])*speed);}ClockAndAssign();setTimeout('Delay()',20);}if (ns||ie)window.onload=Delay;
      

  28.   

    vivanboy(被迫早起的鸟儿)(★★★★★) 
    放心,不会有事的,你会被从宽处理的。
    顺便感叹一下:好多高手呀!!!!!,还好我的三角也不少(555555,我什么时候才能有个★呢,苦苦挣扎中)
      

  29.   

    呵呵,我今天还遇到了呢?需要往一个表格里面删除旧的插入新的tbody,可是dhtml不提供象deleterow这样的安全方法给tbody,只好用上了万恶的removeChild。呵呵,原来以为IE6下面应该问题不大的的,不料照样死掉。我的浏览器可是最新版本IE6.2800(sp1)呀。最后还是用innerHTML大法搞定。你有具体的问题贴出来问嘛,这样泛泛的问,没法子回答。
    坐标定位前两天刚有个不错的帖子啊,你去找找。