1

.playerWindowCookie を使用して 1 回だけロードするように指示する関数を追加する方法を探しています。現在、ページを更新するたびにロードされます。

<script type="text/javascript">

    $(function () {

        $("#button").click(function () {
            $("#overlay").fadeTo(1000, .8);
            $(".playerWindow").show(750);
            //$("body").scrollTop(0);
        });

        $(".closePlayer, #overlay").click(function () {
            $(".playerWindow").hide(750);
            $("#overlay").fadeOut(1000);
        });

    });

    $(window).load(function () {
        if (document.cookie.indexOf('visited=true') === -1) {
            var fifteenDays = 1000 * 60 * 60 * 24 * 15;
            var expires = new Date((new Date()).valueOf() + fifteenDays);
            document.cookie = "visited=true;expires=" + expires.toUTCString();
            $("#overlay").fadeTo(1000, .8);
            $(".playerWindow").show(750);
        }
    });

</script>
4

1 に答える 1

2
$(window).load(function() {
  if (document.cookie.indexOf('visited=true') === -1) {
    var fifteenDays = 1000*60*60*24*15;
    var expires = new Date((new Date()).valueOf() + fifteenDays);
    document.cookie = "visited=true;expires=" + expires.toUTCString();
    $("#overlay").fadeTo(1000, .8);
    $(".playerWindow").show(750);
  }
});

明確にするために、この HTML ページは私の Apache サーバーで動作します。

<html>
    <head></head>
    <body>
        <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script>
            $(window).load(function() {
           if (document.cookie.indexOf('visited=true') === -1) {
              var fifteenDays = 1000*60*60*24*15;
              var expires = new Date((new Date()).valueOf() + fifteenDays);
              document.cookie = "visited=true;expires=" + expires.toUTCString();
              alert("bam!");
         }
    });


         </script>
    </body>
</html>

「バム!」と表示されます。Chrome でシークレット ウィンドウを開くと、再び表示されます。

于 2013-02-25T23:44:15.277 に答える