只有当访客第一次看到页面时才显示div?

时间:2017-11-19 19:48:46

标签: javascript jquery html local-storage

我只需要在第一次加载页面时显示#IE,我不想在刷新时使用它,我试过这个,但它对我不起作用...我明确需要这个用于localStorage,而不是会话或会话存储,关于此链接:https://stackoverflow.com/a/5523174/8735029

HTML:

<p id="IE">You are not using MS browsers! Good Job!<span>x</span></p>

JS

<script>
    // detect IE8 and above, and Edge
    if (document.documentMode || /Edge/.test(navigator.userAgent)) {
        document.getElementById('IE').innerHTML = "You are using a MS browser,please consider using Chrome or Firefox for better experience!<span>x</span>"
    }
</script>   

JQuery的:

<script>


       $(document).ready(function () {
    if (localStorage.getItem('wasVisited') !== undefined) {
        $("#IE").fadeIn("slow").css("display": "flex");
    } else {
        localStorage.setItem('wasVisited', 1);
        $("#IE span").click(function(){
            $("#IE").fadeOut("slow");
        });
    }
});
</script>

2 个答案:

答案 0 :(得分:1)

您第一次将localstorage项检查为!== undefined。它应该是== undefined,因为该页面打开时第一次未定义项目。

答案 1 :(得分:1)

$("#IE").fadeOut("slow");位于click内部。这就是为什么你不在页面刷新时隐藏它。将其移出并休息应该像

一样
  $(document).ready(function () {
   if (localStorage.getItem('wasVisited') == undefined) {
    $("#IE").fadeIn("slow").css("display" , "flex");
    localStorage.setItem('wasVisited', 1);
   }
      $("#IE span").click(function(){
        $("#IE").fadeOut("slow");
    });
});

修改

localStorage.getItem('wasVisited') !== undefined更改为localStorage.getItem('wasVisited') == undefined

$("#IE").fadeIn("slow").css("display": "flex"); $("#IE").fadeIn("slow").css("display" , "flex");