动态网站制作指南
[  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网页制作 > Javascript教程
网页制作:Dreamweaver教程,FrontPages教程,Javascript教程,HTML教程,CSS教程,心得技巧,DHTML教程,网页特效,Discuz!论坛
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Javascript教程 ]的信息

本月文章推荐
.一段非常简单的让图片自动切换js.
.Firefox浏览器兼容JS脚本供参考.
.在网页中控制wmplayer播放器.
.图片下拉选择器的制作.
.document.onLoad的触发时间.
.限制文本字节数的JS源代码程序.
.JavaScript实现网页图片等比例缩.
.Javascript实例教程(8) 检验表单.
.js控制excel打印完美解决方案.
.用JS将网页窗口由小变大.
.如何制作浮动广告.
.在Javascript中使用正则表达式.
.几行代码轻松搞定网页的简繁转换.
.一个简单的javascript菜单.
.用JavaScript实现利用FLASH嵌入声.
.javascript进行客户端数据的校验.
.用Popup对象构建网页右键菜单.
.弹出窗口window.open()的参数列表.
.JavaScript自定义模式对话框.
.Javascript实例教程(20) OLE Aut.

初学Javascript之cookie篇(译)

文章类别:Javascript教程 | 发表日期:2004-1-30 |


 [译者注:将本文的最后示例代码拷贝至文本文件中,更名文件为homepage.htm格式文件,在浏览器中运行,本文以该示例代码讲解


  简介

  ====================================

  问题是我想解决自动访问http://www.thehungersite.com。这个页面能够限制你每一天只访问它一次(不要忘记在这链接上点击)。
  现在为止,每次一开始我做的第一件事就是手工选择我的书签加载这个页面。

  为什么不为它创建一个简单的脚本程序呢?
  因为我想让它在Netscape和IE下都能够同样的工作,我开始学习Javascript。

  解决

  ====================================

  主题思想很简单:创建一个页面并测试一下今天这个页面是否已被加载过,
  如果没有加载,那就通过它链接到http://www.thehungersite.com,并且设置
  这个页面作为浏览器的主页。

  获取页面并重定向是很容易的,问题是如何记忆这个页面已被访问过。

  因为Javascript没有文件访问的功能,看来我们只能使用cookies了。

  Cookies是一个有大小限制的变量,它与一个服务器的域名相关联,
  默认情况下cookie的生存期是当浏览器关闭时被清空(注意:不是当你离开
  这个页面的时候),但可以用一个脚本程序改变这种情况,
  在用户关闭浏览器后使cookies能够存储下来,Netscape在文件中使用所有的
  Cookie,而IE分别存储每个cookie。此外,不同的浏览器会带来一些意想
  不到的情况,你必须确定一个用户在它的浏览器设置中是否关闭了cookies。

  一切都很好也很妙,只是现在我还未在IE中测试它,调用示例Javascript语句:
  cookieExpires = "01-APR-" + nLyear + " GMT";
  document.cookies = cookieName + "=" + cookieValue + ";  expires=" + cookieExpires;

  然后调用
  document.write(document.cookie);

  document.cookie是空的。

  在试验和研究了一下上面的示例程序后,会发现:

  1。你不能够读和显示cookie。如果你想看一下这个cookie你需要指定与它相同的另一个字符串变量,如下:
   document.cookie = cookieName + "=" + cookieValue + "; expires=" + cookieExpires;
   myvar = cookieName + "=" + cookieValue + "; expires=" + cookieExpires;
   document.write(myvar);

  2. 浏览器用了不同的日期格式:
    Netscape使用"GMT"结束,IE使用“UTC",这是因为它可以更好的构建一个日期,象下面这样:
      var expdate = new Date()
   cookieExpires.setTime (expdate.getTime() + 1 * (24 * 60 * 60 * 1000)) //+1 day
   cookieExpires.toGMTString()

   当你显示日期部分
   document.write(expdate.getYear() + "<br>" + expdate.getMonth() + "<br>" + expdate.getDate());
   对于2000-11-15的日期,在IE中显示为2000/10/15,在Netscape下显示100/10/15(注:已确定是一些较低版本的
   Netscape 浏览器的Y2K问题)

   示例中看到像下面这样的部分:
   if (platform == "Mac") {
   lastVisit = lastVisit - (24 * 60 * 60 * 1000)
   }
   但我不可能检测它。

  日期对象有getDate和getDay的方法,第二个方法返回在一周中天的索引号。

----------------------------------------
  知道了这些,基本上就没问题了(现在你可以看一下homepage.htm)

[译者注:将本文的最后示例代码拷至文本文件中并保存htm格式,然后运行]

  最后要说明的是,这不仅是一个专用的JS脚本,如果你想将它用在你的web页面上你必须最小程度的使用不同的浏览器测试它并注意它们的版本,许多的脚本程序包含了浏览器类型检测和大量的if...else语句,以处理这样不同。

  示例页面homepage.htm源代码

  <html>
  <head>
  <title>Homepage</title>
  </head>
  <body>
  <a href='http://www.thehungersite.com/'>Manual redirection<br></a>
  <a href="javascript:ResetCookie()">Cookie reset</a>

  <script language="JavaScript">
  <!--
  var bVisitedToday = false;

  var lastVisit = GetCookie("lastVisit");
  if (lastVisit != null)
  {
  lastVisit = 1 * lastVisit;
  var lastHere = new Date(lastVisit); 
  var rightNow = new Date();

  if(lastHere.getYear() == rightNow.getYear()
     && lastHere.getMonth() == rightNow.getMonth()
     && lastHere.getDate() == rightNow.getDate())
  {
     bVisitedToday = true;
    }
  }

  if(bVisitedToday == false)
  {
  setLastlastVisitCookie();
  window.location="http://www.thehungersite.com/"
  }
  else
  {
  //window.location="about:blank"
  }

  function getCookieVal (offset)
  {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
  }
  function GetCookie (name) 
  {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
  }
  return null;
  }
  function SetCookie (name, value)
  {
  var argv = SetCookie.arguments;
  var argc = SetCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  var path = (argc > 3) ? argv[3] : null;
  var domain = (argc > 4) ? argv[4] : null;
  var secure = (argc > 5) ? argv[5] : false;
  document.cookie = name + "=" + escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
  }
  function setLastlastVisitCookie ()
  {
  var rightNow = new Date();
  var expdate = new Date();
  expdate.setTime (expdate.getTime() + 1 * (24 * 60 * 60 * 1000)); //+1 day
  SetCookie ("lastVisit", rightNow.getTime(), expdate, "/");
  }
  function ResetCookie()
  {
    SetCookie("lastVisit", 0, null, "/");
  }
  // -->
  </script>
  </body>
  </html>

 


上一篇:用JavaScrpt实现文件夹轻松加密 人气:21081
下一篇:将金额小写转化成汉字大写的实现过程 人气:17584
点击此处浏览全部cookie的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-5-16 乘风多用户PHP统计系统 v3.4
2008-5-16 轩溪下载系统 v3.78 build 0515
2008-5-16 普沙B2B 浙江省商贸网 v2.0
2008-5-16 asp抓蜘蛛的小程序 v1.0
2008-5-16 齐齐乐网私服发布站 仿haosf新版
2008-5-16 IssTech信息反馈系统 v1.0
2008-5-16 自由领域大头贴(js接口版) 修正版
2008-5-16 医院网站系统
2008-5-16 智拓-分类信息管理系统 v5.0
2008-5-7 Windows XP SP3 官方英文版
2008-5-7 Windows XP SP3 官方香港中文版
2008-5-7 Windows XP SP3 官方繁体中文版
2008-5-7 Windows XP SP3 官方简体中文版
2008-4-30 Multiple Unzip Wizard 1.02
2008-4-30 Multiple Unrar Wizard 1.0.0
2008-4-30 WinZip Install/Try/Uninstall a
2008-4-30 ZIP压缩文件修复器WzipFix 2.0
2008-4-30 Pentazip 6.01 Build 189 For Wi
  发表评论
姓 名: 验证码: [ 全部贴吧 ] [ 浏览评论 ]
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報