JavaScript 在每个 cookie 5 秒后隐藏 div 加载

Posted

技术标签:

【中文标题】JavaScript 在每个 cookie 5 秒后隐藏 div 加载【英文标题】:JavaScript to hide a div onload after 5 seconds per cookie 【发布时间】:2018-02-01 11:02:21 【问题描述】:

我正在 Bootstrap 中开发一个网站,需要显示横幅/DIV 5 秒,然后淡出/隐藏,但只需要每个用户/cookie 会话显示一次。有任何想法吗?我在这里看到过类似的解决方案,但只满足了我一半的要求。

【问题讨论】:

您现有的代码在哪里?不应该那么难。只需检查是否存在特定 cookie,创建它,然后显示横幅,然后隐藏它。 道歉:JS = html =

Banner with text

我是写JS的新手,所以我不知道如何“创建它”,等等。
请edit您的问题并提供minimal reproducible example。 用 cookie 表示你已经展示过了? 【参考方案1】:

会话存储在服务器端,您不能使用 JavaScript 对其进行修改。会话可能包含敏感数据

请将此代码放在 html 页面的 head 部分。 虽然它不是在 javascript 中执行此操作的最佳方法,而是进入后端并使用 ajax 检查会话。

此 cookie 将存在 2 天

您可以使用 document.cookie 修改 cookie。

<script>
 $(window).on("load", function()                     // Handler when all assets (including images) are loaded
  var check = getCookie("firsttime");

  if (check == "")
      var x = document.getElementById("myDIV");     //Suppose the  div you want to hide has id of myDiv , you can place anything you want  
      x.style.display = "block";
      setTimeout(fadeout,5000);
      var d = new Date();
      var expirydate = 2;
      d.setTime(d.getTime() + (expirydate*24*60*60*1000));
      var expires = "expires="+ d.toUTCString();
      document.cookie ="firsttime=no";            //now after the division is hidden cookie value is set so that we could check next day


    

   function fadeout()                //This function will be called after 5 second and it will hide it and will be called if cookie value isnot set 
      var x = document.getElementById("myDIV");  
      x.style.display = "none";
       
  );
</script>

【讨论】:

第一次使用的 ref 是做什么用的?我是用 myDIV 替换还是 JS 第一次需要?我遇到了问题,它显示正常,但 5 秒后没有消失。 只有问题在 5 秒后没有消失吗???所有其他事情都根据您的需要?? 是的,'myDIV' 使用此 JS 代码显示正常,但 5 秒后不会淡出。你能帮忙吗?

以上是关于JavaScript 在每个 cookie 5 秒后隐藏 div 加载的主要内容,如果未能解决你的问题,请参考以下文章

在 html5 音频元素到达播放结束前 5 秒执行 Javascript 代码

javaScript中cookie的使用

javascript 跨域设置 cookie

JavaScript:set-cookie 和响应处理原子操作吗?

HTML5 javascript-actionscript 暂停 5 秒

如何在 JavaScript 中使用 XMLHttpRequest 设置 Cookie(标头)?