包含 javascript 标签的文章

新的便签程序

以前写的那个便签程序因为在某此情况下获取用户 Cookies 似乎有些问题无法登陆上去,最近又突发想法把这个便签程序改成无刷新的,当然使用到了 Jquery,我发现我似乎有一点爱上 Jquery 了,但是做网站的时候还是得尽量避免使用它呀,昨天一下午边想边做,把基本的布局和一些界面功能做了出来,下看。

[attach=93]

预览地址:ttp://www.vgot.cn/design1/newSticker/layer.html
因为某些关系,我会做 ASP+Access 和 PHP+MySQL 两种,功能是一样的。

前两天做的侧栏功能菜单与后台界面

脑子里突然有了一个想法,就做出来了,还有最近学到的一个ASP后台,觉得原后台又小气又丑,于是把后台整个界面重新设计了一下.
原后台样式
[attach=88]
重做后的后台样式
[attach=89]

最关键的是左边的下拉菜单,使用了JQUREY,这东西的选择器的各种效果实现起来真的很方便啊,一开始做好后第二天在朋友的电脑IE7上预览总是提示JQUERY的选择器符 $ 处找不到对象,怎么看也看不出来问题,郁闷了半天,中间偶尔一次又正常了,就一次,我就纳闷了,难道IE6,FireFox,Opera都支持的IE7这种更高版本的却不行?又偶尔一次以前给他装的畅游巡警报警说网页有木马,文件就是 jquery.js ,然后才知道,我靠,居然是畅游巡警把 jquery 的脚本文件当成挂马的脚本给屏蔽了,关闭畅巡游巡就一切正常了,怪不得 jquery 的语句全都不生效呢,不过就算 jquery 语句不生效,仅仅影响了菜单的展开的收缩效果而已,其它的都还是正常地,呵呵,下看。
看图:

[attach=90] 这是正在做的一个网站界面,小看一下,哈哈:
[attach=91]

演示地址:http://www.vgot.net/design1/Manage/Manage.html
还有一点我纳闷的是,我检查了  jquery 的文件一切正常啊,从官网上下载了原文件对比没有不一样的地方,还有我的首页上也使用了 jquery 的效果,为什么用他的 IE7 浏览我的首页一切正常呢,这个下拉菜单却报了?

网页中随时获取鼠标位置

好久没更新博客了,连看奥运会的时候都没上过网,这次给大家带来一个 JavaScript 好东西,自己拿去玩吧...
 

JavaScript代码
  1. <!--   
  2. /*   
  3.     2008-7-28 17:54  
  4.     Made by pader of http://www.vgot.cn  
  5.     我们先在这里声明了一个全局空数组变量 mousePos  
  6.     用它来存放鼠标的即时坐标数据  
  7. */  
  8. var mousePos = new Array();   
  9. /*  
  10.     mouseLoc 把获取到的鼠标坐标数据赋值给了  
  11.     mousePos 这个全局数组.  
  12.     mousePos["x"] 的值就是鼠标的 X 轴即横向距页面左边的像素距离  
  13.     mousePos["y"] 的值就是鼠标的 Y 轴即纵向距页面顶部的像素距离  
  14. */  
  15. function mouseLoc(e){   
  16.   if(document.all){   
  17.     x = event.x + document.body.scrollLeft;   
  18.     y = event.y + document.body.scrollTop;   
  19.   } else {   
  20.     x = e.pageX;   
  21.     y = e.pageY;   
  22.   }   
  23.   mousePos["x"] = x;   
  24.   mousePos["y"] = y;   
  25.   return true;   
  26. }   
  27. /*  
  28.     为了让页面能即时获得鼠标的坐标,我们只能用之类的事件执行这样的函数.  
  29.     在这里使用 document.onmousemove 事件来执行 mouseLoc  
  30.     以不断更新全局数组 mousePos 里的鼠标位置数据  
  31. */  
  32. if(document.layers){    //NS4   
  33.     document.captureEvents(Event.MOUSEMOVE);   
  34. }   
  35. document.onmousemove = mouseLoc;   
  36. /*  
  37.     那如果我还想在这个事件里做其它的事情怎么办呢?  
  38.     可以像下面这样写:  
  39.         document.onmousemove = function(){  
  40.             document.body.onmousemove = mouseLoc;  
  41.             alert('第一个弹出信息');  
  42.             alert("弹出第二个信息");  
  43.             //更多...  
  44.         }  
  45.     这里为防止与 document.onmousemove 冲突,我们在 function(){} 里面  
  46.     使用的是 document.body.onmousemove 来执行 mouseLoc;  
  47. */  
  48. //-->  


去掉注释就这么点

 

JavaScript代码
  1. <!--   
  2. var mousePos = new Array();   
  3.   
  4. function mouseLoc(e){   
  5.   if(document.all){   
  6.     x = event.x + document.body.scrollLeft;   
  7.     y = event.y + document.body.scrollTop;   
  8.   } else {   
  9.     x = e.pageX;   
  10.     y = e.pageY;   
  11.   }   
  12.   mousePos["x"] = x;   
  13.   mousePos["y"] = y;   
  14.   return true;   
  15. }   
  16.   
  17. if(document.layers){    //NS4   
  18.     document.captureEvents(Event.MOUSEMOVE);   
  19. }   
  20. document.onmousemove = mouseLoc;   
  21. //-->  

终于搞定了

想写几个通用的 AJAX 所用的函数,在写 postRequest() 这个函数的时候总是得不到返回值,后来才知道,用异步数据是不行的,得同步,记录下。。。

在此要感谢这篇文章 http://xujingbao.javaeye.com/blog/186050
 
下面的 writePostRequest() 函数因为不想脚本臃肿,就直接调用了 postRequest() 函数了,因为没有返回值可以用异步回调的方式,不过要另写整个函数,所以如果想看上去执行速度快一些的话就可以重写 writePostRequest() 函数用异步的方式。
另外一点就是如果 Post 数据的时候中文要编码,否则发送到服务器端会乱码,当然可以在服务器端转换编码,详情可以参考《PHP的unescape()函数》这篇文章。

JavaScript代码
  1. <!--   
  2. var xmlHttp;   
  3. var isie = false;   
  4. function createXmlHttp(){   
  5.     var theObject;   
  6.     if(window.ActiveXObject){ //Get xmlHttp   
  7.         theObject = new ActiveXObject("Microsoft.XMLHTTP"); //IE6及以上版本   
  8.         isie = true;   
  9.     }else if(window.XMLHttpRequest){   
  10.         theObject = new XMLHttpRequest();   
  11.     }else{   
  12.         alert("您的浏览器不支持XMLHTTP,页面无法创建对象,将会影响到页面的正常功能!");   
  13.     }   
  14.     return theObject;   
  15. }   
  16.   
  17. function getRequest(url){   //获取 GET 返回数据   
  18.     xmlHttp = createXmlHttp();   
  19.     try{   
  20.         if(isie == false ){   
  21.             xmlHttp.open("GET", url, false);   
  22.             xmlHttp.setRequestHeader("If-Modified-Since","0");    
  23.             xmlHttp.overrideMimeType("text/html;charset=gb2312");   
  24.             xmlHttp.send(null);   
  25.             return xmlHttp.responseText;   
  26.         }else{   
  27.             xmlHttp.open("GET", url, false);   
  28.             xmlHttp.setRequestHeader("If-Modified-Since","0");    
  29.             xmlHttp.send(null);   
  30.             if(xmlHttp.readyState == 4){   
  31.                 if(xmlHttp.status == 200 || xmlHttp.status == 0){   
  32.                     return Recenspace(xmlHttp.responseBody);   
  33.                 }   
  34.             }   
  35.         }   
  36.     }catch(exception){       
  37.         document.write('exception:'+exception.message);       
  38.     }       
  39. }   
  40.   
  41. function postRequest(url,postString){   //获取 POST 返回数据   
  42.     xmlHttp = createXmlHttp();   
  43.     var returnText = null;   
  44.     xmlHttp.onreadystatechange = function(){   
  45.         if(xmlHttp.readyState == 4 && xmlHttp.status == 200){   
  46.             returnText = xmlHttp.responseText;   
  47.         }   
  48.     }   
  49.     xmlHttp.open("POST", url, false);   
  50.     xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");   
  51.   //xmlHttp.overrideMimeType("text/html;charset=gb2312");   
  52.     xmlHttp.send(postString);   
  53.     return returnText;   
  54. }   
  55.   
  56. function Recenspace(Html){   
  57.     var rs=new ActiveXObject("ADODB.RecordSet");   
  58.     rs.fields.append("a",201,1);   
  59.     rs.open();   
  60.     rs.addNew();   
  61.     rs(0).appendChunk(Html);   
  62.     rs.update();   
  63.     return rs(0).value;   
  64.     rs.close();   
  65. }   
  66.   
  67. function writeGetRequest(url,element){  //写入 GET 返回值   
  68.     document.getElementById(element).innerHTML = getRequest(url);   
  69. }   
  70.   
  71. function writePostRequest(url,postString,element){  //写入 POST 返回值   
  72.     document.getElementById(element).innerHTML = postRequest(url,postString);   
  73. }   
  74.   
  75. function doIt(){   
  76.     //无操作函数    
  77. }   
  78. //-->  

JavaScript获取GET的函数2

上次写的那个获得GET什的JS函数在最近参考了一个小脚本之后突有感想,便重写了一番,虽然是客户端脚本,速度不是问题,可是改过之后的效率要高多了,不用每次获取都循环了。

新的JS获取GET

JavaScript代码
  1. <script language="javascript">   
  2. <!--   
  3. /*  
  4. 获取GET值的JavaScript  
  5. 原创 by pader [QQ:270075658] [Homepage:www.vgot.cn] [E-mail:ypnow@163.com]  
  6.   location_get_vars[get[0]] = unescape(get[1]);  
  7. */  
  8. function QueryGET(){   
  9. var urlt = window.location.href.split("?");   
  10. var gets = urlt[urlt.length-1].split("&");   
  11. var location_get_vars = new Array();   
  12.  for(var i=0;i<gets.length;i++){   
  13.   var get = gets[i].split("=");   
  14.   eval("location_get_vars['" + get[0] + "'] = '" + unescape(get[1]) + "';");   
  15.  }   
  16. return location_get_vars;   
  17. }   
  18.   
  19. var GET = QueryGET();   
  20. -->   
  21. </script>   

其中
 eval("location_get_vars['" + get[0] + "'] = '" + unescape(get[1]) + "';");
这一行
行可以用
location_get_vars[get[0]] = unescape(get[1]);
代替。

最后使用的 var GET = QueryGET();  得到函数返回的所有的GET值,也就是一个数组。
用 GET["vgot"] 获得 vgot 的 GET 值。