【问题标题】:Make an ad appear every 5 minutes?每 5 分钟展示一次广告?
【发布时间】:2017-05-25 10:26:25
【问题描述】:

下面是我用来让广告每天展示一次的代码。我想将其切换为每 5 分钟出现一次。我想将脚本中 1 的值更改为 0.004(如果 1 = 一天,0.004 = 大约 5 分钟),但它似乎无法正常工作。有没有人有任何想法?谢谢!

<style>
    #donationad {
        position: fixed;
        bottom: 0;
        left: 40px;
        width: 250px;
        height: 150px;
        z-index: 999;
        display: none;
    }

    #donationad.hide {
        display: none;
    }

    .closebutton {
        position: relative;
        top: 20px;
        left: 230px;
        cursor: pointer;
    }

    .closebutton img {
        width: 30px;
        height: auto;
        opacity: 1.0;
    }
</style>
<script type="text/javascript">
    $(document).ready(function() {
        $('.closebutton').click(function() {
            $("#donationad").toggleClass("hide");
        });
    });
</script>
<div id="donationad">
    <div class="closebutton"> <img src="http://www.dbknews.com/pb/resources/assets/img/modal_close_button.png"> </div>
    <a href="http://dbknews.com/donate"> <img src="https://s3.amazonaws.com/wapopartners.com/dbknews-wp/wp-content/uploads/2016/12/24020402/DBK-Donate250x150.jpg"> </a>
</div>
<script type="text/javascript">
    var cookie = document.cookie;
    if (cookie.indexOf('visited=', 0) == -1) {
        var expiration = new Date();
        expiration.setDate(expiration.getDate() + 1);
        document.cookie = 'visited=1;expires=' + expiration + ';path=/';
        var element = document.getElementById('donationad');
        element.style.display = 'block';
    }
</script>

【问题讨论】:

  • 您希望在用户访问网站时每五分钟投放一个新广告,或者您希望每五分钟投放一个新广告。即每五分钟每个人都会在给定时间看到完全相同的广告 x
  • 每 5 分钟用户看到一次。所以,我本质上希望用户获得一个在五分钟内过期的 cookie。过期后,广告将再次可见,并附加一个新的 cookie。抱歉,希望这更清楚一点。
  • 这里有点二折。如果您希望在重新加载时控制过期时间,那么 mr.rogers 的想法适用于重新加载。但如果他们只是坐在页面上,它就行不通。您需要将代码包装起来以检查 setInterval 中的 cookie,并且只需使用相当于 5 分钟(以 1000 秒为增量)的时间。
  • 另外,如果您想捕捉像我们这样可能正在执行 F12 的编码人员,只需检查该元素是否仍然存在,这样您就没有错误,如果不存在则添加。如果您担心,您可以查看如何做到这一点,但这需要更多的工作。
  • 明白了。我不太担心他们坐在页面上,所以我主要是在寻找它来重新加载。我真的很感激所有的信息。说到javascript,我真的很生疏。

标签: javascript html cookies session-cookies


【解决方案1】:

Date.setDate 设置月份的日期,而不是“日期”。令人困惑?是的。

你想要的是完全不同的东西。

document.cookie = 'visited=1;max-age=300;path=/';
// 300 is 5 minutes in seconds

这会创建一个只能存在 5 分钟的 cookie,您根本不需要处理日期。您将丢失旧版本的 IE,它会将 cookie 视为临时的。

【讨论】:

  • 快速问题:更新了代码行,现在广告只是继续出现而没有消失。我错过了什么吗?此外,一旦达到 5 分钟,我会将其完全标记为已回答。
  • 所以广告在刷新时仍然可见,您是在说什么?
  • 是的,没错。我想我可能需要改变这个: if (cookie.indexOf('visited=', 0) == -1)
  • 不,没关系。如果您在更改的代码上检查 document.cookies,它甚至不会保存访问过的 cookie。所以还有其他问题。
  • 也将 javascript 包装在 document.ready 中。这将确保在其余所有内容之后加载所有内容(即使它位于底部可能比 div 本身加载得更快)。然后还为有问题的 div 添加一个 display=none 样式,除非他们没有访问过,否则应该隐藏它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 2020-06-23
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多