初学Javascript之cookie篇(译)

2016-02-19 13:40 1 1 收藏

下面是个初学Javascript之cookie篇(译)教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - Web开发 】

 [译者注:将本文的最后示例代码拷贝至文本文件中,更名文件为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;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

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

  document.cookie是空的。

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  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
  titleHomepage/title>

  function ResetCookie()
  {
    SetCookie("lastVisit", 0, null, "/");
  }
  // --
  /script
  /body
  /html

来源:https://www.tulaoshi.com/n/20160219/1604947.html

延伸阅读
标签: Web开发
expires 生存期  默认:会话期间存在(用户关闭浏览器后,cookie值被销毁) 其他:日期格式规范为GMT(或UCT)"Weekday, DD-Mon-YYYY HH:MM:SS GMT" 解决方法是使用Date对象。  path 可访问的路径 默认:创建该cookie值的网页路径(cookie只能被同在当前目录中的其他页面,或者当前目录的子目录中的页面访问...
标签: Web开发
利用空闲几天把《JavaScript权威指南》安静的读了一篇。真是一本好书呀!呵呵,这句话见的太多了。好在什么地方呢?听我慢慢道来。 从开始接触JS这东西有一年时间了,心头总是有一些说不出来的苦闷。在论坛里也常常有人这么说。那么苦在何处呢?总是感觉学的不深入,一些简单的东西可以做但也是不能得心应手。能不能把这种苦再说的具体点儿...
标签: Web开发
新版本网站--lib类函数功能应用DEMO演示 新版本网站--lib类函数功能应用DEMO演示 1 2 3 4 5 6 7 8拖动窗口(1)关闭窗口 理光R系列自来都已全面而著称,去年推出的R7则堪称是相当完善的一款产品,轻巧的机身,7.1倍光学变焦镜头,大尺寸LCD,快速的开机、对焦速度,加上合理的价格,取得了相当不错的销售成绩。 ...
标签: Web开发
代码如下: % Response.Cookies("Cookie1")("key1") = "KeyValue2" % script language="javascript" String.prototype.get   =   function(name){    var   reg = new RegExp("(^|&|\\?)" + name + "=([^&]*)(&|$)"),...
标签: Web开发
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

经验教程

76

收藏

50
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部