Javascript 如何使它这样当我运行我的脚本,它将不会再次运行一天,并将改变页面上的另一个项目

Javascript 如何使它这样当我运行我的脚本,它将不会再次运行一天,并将改变页面上的另一个项目,javascript,Javascript,好的,问题是。我需要帮助,当我点击按钮时,它会在我设置的函数中运行free_cash变量。但我想把吉文的钱加到这个人所有的钱里 我还想知道我如何才能做到这一点,当你点击按钮获取每日免费现金时,它只允许你一天做一次,如果你再点击它,信息就会切换到你今天已经收到的讲义 <!DOCTYPE html> <html> <head> <title> Character </title> <style> </style>

好的,问题是。我需要帮助,当我点击按钮时,它会在我设置的函数中运行free_cash变量。但我想把吉文的钱加到这个人所有的钱里

我还想知道我如何才能做到这一点,当你点击按钮获取每日免费现金时,它只允许你一天做一次,如果你再点击它,信息就会切换到你今天已经收到的讲义

<!DOCTYPE html>
<html>
<head>
<title>
Character
</title>
<style>

</style>
</head>
<body>
<p style="margin-right: 20px; margin-left: 20px; margin-top: 5px; color: darkblue; font-size: 35px;">Money:</p>
<button onclick="FreeCash()">Free Daily Cash</button><br>
<p id="freecash"></p>

<script>
    function FreeCash(){
    var free_cash = "Someone handed you \"$100\" You must be a lucky man";
    var nofree_cash = "Sorry you already got your handout for the day. Come back tomorrow ight.";
    document.getElementById("freecash").innerHTML = free_cash;
    }
</script>

<br><br><br><br>

<noscript>
    <h3>This site requires JavaScript</h3>
</noscript>

</body>
</html>

性格
货币:

每日免费现金

函数FreeCash(){ var free_cash=“有人递给你\”“100 \”“你一定是个幸运儿”; var nofree_cash=“对不起,您已经收到了当天的讲义。明天晚上再来。”; document.getElementById(“免费现金”).innerHTML=免费现金; }



此站点需要JavaScript
您可以使用变量检查按钮是否被单击:

var clicked = false;
function FreeCash(){
    var free_cash = "Someone handed you \"$100\" You must be a lucky man";
    var nofree_cash = "Sorry you already got your handout for the day. Come back tomorrow ight.";
    if(!clicked) {
        document.getElementById("freecash").innerHTML = free_cash;
        clicked = true;
    } else {
        document.getElementById("freecash").innerHTML = nofree_cash;
    }
}
您可以看到

编辑:

要使其每天可用一次,您可以使用
setInterval()
在一天后将单击的
的值重置为
false

setInterval(function(){
              clicked = false; 
            }, 1000*60*60*24); // after a day
这是一个肮脏的方式,但它应该做的把戏

您可以看到每10秒执行一次的

您不能仅使用javascript来执行此操作。。。。您需要一个数据库来存储用户单击的时间,这需要一种web端语言(PHP、JavaEE……等等)。

试试这个

var givenDateTime = new Date();
    var isGiven = false;
    function FreeCash(){

    var cuurDateTime = new Date();

    var message = '';
    var free_cash = "Someone handed you \"$100\" You must be a lucky man";
    var nofree_cash = "Sorry you already got your handout for the day. Come back tomorrow ight.";
    alert(isGiven);
    alert((cuurDateTime.getDate() - 1) < givenDateTime);
    if(isGiven && (cuurDateTime.getDate() - 1) < givenDateTime){
        message=nofree_cash;
        document.getElementById("freecash").innerHTML = message;
    }else{
        message=free_cash;
        isGiven = true;
        givenDateTime = new Date();
        document.getElementById("freecash").innerHTML = message;
    }


    }
var givenDateTime=new Date();
var isGiven=假;
函数FreeCash(){
var cuurDateTime=新日期();
var消息=“”;
var free_cash=“有人递给你\”“100 \”“你一定是个幸运儿”;
var nofree_cash=“对不起,您已经收到了当天的讲义。明天晚上再来。”;
警报(已给出);
警报((cuurDateTime.getDate()-1)
您应该这样做:

function FreeCash() {
    //Checks whether lastDate has been set.
    if (!!localStorage.getItem("lastDate")) {
        //If so and a day did not pass since then, then end the function
        if ((new Date() - new Date(localStorage.getItem("lastDate"))) / (1000 * 3600 * 24) < 1) {
            return;
        }
    }
    //Set last date to current moment. You can set it to 00:00:00 of the day as well, if that fulfills your requirements better.
    localStorage.setItem("lastDate", new Date());
    var free_cash = "Someone handed you \"$100\" You must be a lucky man";
    var nofree_cash = "Sorry you already got your handout for the day. Come back tomorrow ight.";
    document.getElementById("freecash").innerHTML = free_cash;
}
函数FreeCash(){
//检查是否已设置lastDate。
if(!!localStorage.getItem(“lastDate”)){
//如果是这样,一天没有过去,那么就结束这个活动
如果((新日期()-新日期(localStorage.getItem(“lastDate”))/(1000*3600*24)<1){
返回;
}
}
//将最后一个日期设置为当前时刻。您也可以将其设置为当天的00:00:00,如果这更好地满足您的要求的话。
setItem(“lastDate”,newdate());
var free_cash=“有人递给你\”“100 \”“你一定是个幸运儿”;
var nofree_cash=“对不起,您已经收到了当天的讲义。明天晚上再来。”;
document.getElementById(“免费现金”).innerHTML=免费现金;
}

这应该可以解决客户端的问题,即使用户导航离开页面,但是,您也需要在服务器端进行验证,因为我可以随时在浏览器控制台中修改您的客户端功能。

如果您只在客户端执行此操作,则需要使用cookie在页面加载之间跟踪。如果你有权访问服务器端的某个东西,那么你可以在那里跟踪它,这样会更安全一些。从OP post:“我还想知道我如何做到这一点,当你点击按钮获取每日免费现金时,它只允许你每天做一次,如果你再点击一次,信息就会切换到今天已经收到讲义的内容“@PM我错过了那部分,但是我编辑的方法呢?你的方法不现实。要使其正常工作,用户应保持浏览器打开,并全天候连接到此网站。我们这里不是在处理服务器端脚本。@Joshua您需要一个服务器端代码来处理这种情况。@Joshua您必须使用php perl或其他服务器端语言来制定具体的解决方案,即使你不能通过使用HTML5或WEBSQL实现,它也可以通过客户端进行更改。你可以通过JS为允许cookie的用户实现。