随机数生成器javascript。如何防止它在刷新时生成新数字?

时间:2014-02-07 19:26:02

标签: javascript html random refresh generator

好的,我收到了这段代码:

<font face="Arial" size="2">Your random number:</font></b><br></br>
<span class="xr_tl Normal_text" style=" top: 0px;
                                        font-family:Impact;
                                        font-size:20px;
                                        color:#c04e51;">
    <script type="text/javascript">
        document.write(Math.floor(Math.random()*999999));
    </script>
</span>

当您访问该页面时它生成一个随机数并且工作正常,但我需要它只生成一次随机数。这意味着当您单击刷新时,不会生成新的随机数,并且先前生成的数字将保留在那里。我怎样才能做到这一点?我认为可以通过发送cookie来完成,但我无法弄明白。

3 个答案:

答案 0 :(得分:1)

您必须将该号码存储在某处然后再使用它。例如在cookie中。以下是一些设置,获取和取消设置cookie的功能。我认为使用cookies比localstorage更好,因为你选择它们保持有效的时间。

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

答案 1 :(得分:1)

var num = localStorage.getItem('num') || Math.floor(Math.random()*999999);
localStorage.setItem('num',num);
document.write(num);

只需将其贴在localStorage

答案 2 :(得分:0)

您可以使用localStorage API存储关闭或刷新页面后仍会保留的信息。

var res = localStorage.getItem('randomNumber');
if(res == null){
    res  = Math.floor(Math.random()*999999)
    localStorage.setItem('randomNumber', res);
}

document.write(res);

Demo