2014-10-29 102 views
2

我创建了一个引导模式弹出窗口,它完全显示并消失。我需要做的是检查是否存在cookie,并且只有当用户在站点上时才弹出一次。我也有一个关闭按钮。目前,每次刷新页面时都会显示,但我不确定如何使其正常工作。我看到一些谷歌搜索的例子,但没有为我工作。谁能帮忙?由于Bootstrap模态和cookie

这里是我的javascript:

$(document).ready(function() { 
    if (document.cookie != "") { 
     $("#myModal").modal("show"); 
     $("#myModalClose").click(function() { 
      $("#myModal").modal("hide"); 
     }); 
    } 
}); 

这里是我的HTML:

<div id="myModal" class="modal fade in"> 
    <div class="inner-modal"> 
     <div class="modal-container"> 
      <p>some text</p> 
      <button class="close" data-dismiss="modal" data-target="#myModal">Hide this message</button> 
     </div> 
    </div> 
</div> 
+0

不应该'如果(document.cookie中!= “”)'是'如果(document.cookie中== “”)'? – DavidG 2014-10-29 12:33:23

+0

嗨@DavidG当我将它从!=更改为==我的模态弹出式中断。 – fnk 2014-10-29 12:37:44

+0

以什么方式打破?无论如何,编写'if(!document.cookie)' – DavidG 2014-10-29 12:38:39

回答

5

你的逻辑有点回到前面。您需要检查是否尚未设置cookie,然后显示模式。此外,您需要事后设置cookie,以免再次发生。

$(document).ready(function() { 
 
    //if cookie hasn't been set... 
 
    if (document.cookie.indexOf("ModalShown=true")<0) { 
 
     $("#myModal").modal("show"); 
 
     //Modal has been shown, now set a cookie so it never comes back 
 
     $("#myModalClose").click(function() { 
 
      $("#myModal").modal("hide"); 
 
     }); 
 
     document.cookie = "ModalShown=true; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/"; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> 
 

 
<div id="myModal" class="modal fade in"> 
 
    <div class="inner-modal"> 
 
     <div class="modal-container"> 
 
      <p>some text</p> 
 
      <button id="myModalClose" class="close" data-dismiss="modal" data-target="#myModal">Hide this message</button> 
 
     </div> 
 
    </div> 
 
</div>

+0

我试过上面的代码,但没有发生任何事情。模态弹出窗口始终显示在屏幕上,不会做任何事情或消失。 – fnk 2014-10-29 13:04:49

+0

我已经修复了它(我真的不应该编写代码,而不进行测试!) – DavidG 2014-10-29 13:23:13

+0

感谢@DavidG用于更新答案,但是当我点击刷新时,模式会再次弹出,然后在屏幕上冻结并停止工作。无法按下关闭按钮或执行任何操作。 – fnk 2014-10-29 13:56:24