以下是用于存储用户上次访问网页的时间和日期的脚本。但是当我使用脚本运行HTML时没有任何反应。
window.onload = init;
function init() {
var now = new Date();
var last = new Date();
document.cookie = "username=" + ";path=/;expires=" + now.setMonth(now.getMonth() + 2).toGMTString() + ";lastVisit=" + last.toDateString();
var lastVisit = document.cookie.split("=");
document.getElementById("lastVisitedOn").value = lastVisit[6];
}
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="lastVisitTester.js">
</script>
</head>
<body>
<form>
<label>Enter your name <input type="text" id="name_field" /></label> <br/>
<input type="submit" value="submit" />
</form>
<h1 id="lastVisitedOn"></h1>
</body>
</html>
为什么没有为h
标记设置时间/日期?脚本有什么问题?
答案 0 :(得分:2)
window.onload = function () {
var now = new Date(),
expires = now,
lastVisit = document.cookie.match(/lastVisit=([^;]+)/),
userName = 'somebody';
// 1. You should set month in standalone way
expires.setMonth(now.getMonth() + 2);
// 2. For each cookie you set value individually: for username in 1st line, and for lastVisit in 2nd
document.cookie = "username=" + userName + ";path=/;expires=" + expires.toGMTString();
document.cookie = "lastVisit=" + now.toDateString() + ";path=/;expires=" + expires.toGMTString();
// 3. You should test and extract your cookie value BEFORE you set it (see above with cookie match)
// 4. You should test if it's not null also
if (null != lastVisit) {
// 5. You should use innerHTML property for set content
document.getElementById("lastVisitedOn").innerHTML = lastVisit[1];
}
// 6. But in general you should RTFM more :)
// 7. ps: And also use some standard frameworks for this -- not manual raw JS
}
答案 1 :(得分:1)
您的代码中存在一些问题。
正如其他人之前提到的那样:
不推荐使用“toGMTString()”函数。
使用“toLocaleString()”或“toUTCString()”而不是“toGMTString()”(另请参阅https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date#toGMTString)
你不能那样使用document.cookie。不确定。
示例:
var now = new Date();
var last = new Date();
var cookieText = "username=" + ";path=/;expires=" + now.setMonth(now.getMonth() + 2).toLocaleString() + ";lastVisit=" + last.toDateString();
document.cookie = cookieText;
var lastVisit = cookieText .split("=");
document.getElementById("lastVisitedOn").innerHTML = lastVisit[4];