【问题标题】:How to refresh div every 30 seconds?如何每30秒刷新一次div?
【发布时间】:2014-03-06 03:38:32
【问题描述】:

我有一个显示 cookie 值 throw document.write 的脚本。

如何刷新脚本 - 每 30 秒更新一次?

或者,如果不可能,再次获取 cookie 值。 value = GetCookie('VisitorName');

或者,将其放入 iframe 并重新加载 iframe scr。

代码如下:

    var expDays = 30;
    var exp = new Date();
    exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

    function Who(info) {
        var VisitorName = GetCookie('VisitorName')

        if (VisitorName == null) {
            VisitorName = "Dear visitor";
            SetCookie ('VisitorName', VisitorName, exp);
       }

        return VisitorName;
    }

    function set() { 
        VisitorName = prompt("");
        SetCookie ('VisitorName', VisitorName, exp);
    }

    function getCookieVal (offset) {
        var endstr = document.cookie.indexOf (";", offset);

        if (endstr == -1)
            endstr = document.cookie.length;

       return unescape(document.cookie.substring(offset, endstr));
    }

    function GetCookie (name) {
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i = 0;

        while (i < clen) {
            var j = i + alen;
            if (document.cookie.substring(i, j) == arg)
        return getCookieVal (j);
            i = document.cookie.indexOf(" ", i) + 1;
            if (i == 0)
                 break;
        }   

        return null;
   }

    function SetCookie (name, value) {
        var argv = SetCookie.arguments;
        var argc = SetCookie.arguments.length;
        var expires = (argc>2) ? argv[2] : null;
        var path = (argc >3) ? argv[3] : null;
        var domain = (argc >4) ? argv[4] : null;
        var secure = (argc >5) ? argv[5] : false;
        document.cookie = name + "=" + escape (value) +
            ((expires == null) ? "" : (";expires=" + expires.toGMTString())) +
            ((path == null) ? "" : (";path=" + path)) +
            ((domain == null) ? "" : (";domain=" + domain)) +
            ((secure == true) ? ";secure" : "");
    }

    function DeleteCookie (name) {
        var exp = new Date();
        exp.setTime (exp.getTime() - 1);

        var cval = GetCookie (name);
        document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
    }

    document.write("" + Who() + ",")

【问题讨论】:

    标签: javascript jquery ajax cookies document.write


    【解决方案1】:

    我想你想要setTimeoutsetInterval functions here

    function myFunc() {
      alert('Hi')
    }
    setTimeout(myFunc, 30000) // 1000 ms = 1 second
    

    所以我不确定您希望每 30 秒重复一次什么功能,但它可能看起来像这样:

    function MyTimerFunction() {
      document.write("" + Who() + ",")
    }
    MyTimerFunction(); // runs MyTimerFunction immediately
    setInterval(MyTimerFunction, 5000) // run MyTimerFunction it every 5 seconds
    

    【讨论】:

    • 它重新加载,但在干净的页面上显示结果。并且它在旧值旁边添加了新值,因此每个时间间隔我都有多个值值!我想留在内容页面并删除以前的值。也许我必须将它插入到类似这样的 标签中?
    • 框架很少是要走的路。您需要在页面上创建一个 div 元素并让函数写入它。很简单,但如果没有完整的 html 代码,在不知道您的技能水平的情况下很难快速解释。查看accepted answer here 了解如何写入a div。这将替换 document.write("" + Who() + ",") 行。
    • 我写了,结果还是一样
    • 也许删除然后重新添加脚本,例如: $('script').each(function() { if ($(this).attr('src') !== ' assets/js/jquery.min.js') { var old_src = $(this).attr('src'); $(this).attr('src', ''); setTimeout(function(){ $( this).attr('src', old_src + '?'+new Date()); }, 250); } });
    • 也许可以获取 cookie 值,例如: document.getElementById('visitor).value = GetCookie('VisitorName');
    猜你喜欢
    • 2017-11-08
    • 2023-04-11
    • 2012-06-13
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 2014-10-16
    • 1970-01-01
    相关资源
    最近更新 更多