2014-10-29 53 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