我想找出一個更好的方式來做我的代碼下面做的.. 它所做的是它保存localstorage中的時間戳,以知道該鏈接最後點擊的時間,然後它顯示時間運行出。但是,如果我想添加更多鏈接,它會很複製粘貼... 有人可以幫助我如何循環通過「保存和加載」腳本?也許可以在鏈接中添加分鐘數而不是在腳本中?任何更好的方法來設置和從LocalStorage獲取?
這是我做的現在:
<html>
<head>
<script type="text/javascript" src="script.js"></script>
</head>
<body onload="checkLocalStorage()">
<a onclick="saveTime01()" id="linkID01" href="#">Link1</a>
<a onclick="saveTime02()" id="linkID02" href="#">Link2</a>
<a onclick="saveTime03()" id="linkID03" href="#">Link3</a>
<a onclick="saveTime04()" id="linkID04" href="#">Link4</a>
</body>
</html>
在我的script.js
function checkLocalStorage() {
setInterval(function(){
if("linkValue01" in localStorage){
var storedTime = localStorage.getItem("linkValue01");
var timeNow = new Date().getTime();
var minutesFromLastClick = (timeNow - storedTime)/60000;
if(minutesFromLastClick > 30) {
document.getElementById("linkID01").style.display = "inline";
}
else {
document.getElementById("linkID01").style.display = "none";
}
}
if("linkValue02" in localStorage){
var storedTime = localStorage.getItem("linkValue02");
var timeNow = new Date().getTime();
var minutesFromLastClick = (timeNow - storedTime)/60000;
if(minutesFromLastClick > 180) {
document.getElementById("linkID02").style.display = "inline";
}
else {
document.getElementById("linkID02").style.display = "none";
}
}
if("linkValue03" in localStorage){
var storedTime = localStorage.getItem("linkValue03");
var timeNow = new Date().getTime();
var minutesFromLastClick = (timeNow - storedTime)/60000;
if(minutesFromLastClick > 120) {
document.getElementById("linkID03").style.display = "inline";
}
else {
document.getElementById("linkID03").style.display = "none";
}
}
if("linkValue04" in localStorage){
var storedTime = localStorage.getItem("linkValue04");
var timeNow = new Date().getTime();
var minutesFromLastClick = (timeNow - storedTime)/60000;
if(minutesFromLastClick > 10) {
document.getElementById("linkID04").style.display = "inline";
}
else {
document.getElementById("linkID04").style.display = "none";
}
}
}, 1000);
}
function saveTime01(){
var object = new Date().getTime();
localStorage.setItem("linkValue01", JSON.stringify(object));
document.getElementById("linkID01").style.display = "none";
}
function saveTime02(){
var object = new Date().getTime();
localStorage.setItem("linkValue02", JSON.stringify(object));
document.getElementById("linkID02").style.display = "none";
}
function saveTime03(){
var object = new Date().getTime();
localStorage.setItem("linkValue03", JSON.stringify(object));
document.getElementById("linkID03").style.display = "none";
}
function saveTime04(){
var object = new Date().getTime();
localStorage.setItem("linkValue04", JSON.stringify(object));
document.getElementById("linkID04").style.display = "none";
}
不能在問題發現jQuery的標籤。 – 0x860111
既然沒有提到,我用jquery :)同樣的邏輯也可以爲javascript添加。優化保持不變。 – hkasera