[译者注:将本文的最后示例代码拷贝至文本文件中,更名文件为homepage.htm格式文件,在浏览器中运行,本文以该示例代码讲解]
简介
====================================
问题是我想解决自动访问http://thehungersite。这个页面能够限制你每一天只访问它一次(不要忘记在这链接上点击)。
现在为止,每次一开始我做的第一件事就是手工选择我的书签加载这个页面。
为什么不为它创建一个简单的脚本程序呢?
因为我想让它在Netscape和IE下都能够同样的工作,我开始学习Javascript。
解决
====================================
主题思想很简单:创建一个页面并测试一下今天这个页面是否已被加载过,
如果没有加载,那就通过它链接到http://thehungersite,并且设置
这个页面作为浏览器的主页。
获取页面并重定向是很容易的,问题是如何记忆这个页面已被访问过。
因为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.getM>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.getM
}
else
{
//window.locati
}
functi ", i) + 1;
if (i == 0) break;
}
return null;
}
functi" : ("; 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>
欢迎您访问www.5ucms.org
上一篇:5ucms仿站,让弹出窗口变得“体贴”一些(javascript) 下一篇:5ucms插件,JavaScript学习:基础继承机制 |
|
本站声明:本网站所载文章等内容,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权及其它问题,请在30日内与本网联系(Email:3876307#qq.com),我们将在第一时间删除内容。若原创内容转载请注明出处。 5ucms插件,初学Javascript之cookie篇(译)的关键词: |