2016-09-26 82 views
0

我有一個顯示模式彈出頁面加載時,一個jQuery功能。有沒有辦法讓每個用戶會話只顯示一次。我有很多帖子,但無論如何,我不能讓他們在我的腳本中工作。jQuery的模態彈出顯示只有一次,每次用戶會話

我的腳本:

$(document).ready(function() { 

    $(window).load(function(){ 
     $("#dialog1").dialog(); 
    }); 

}); 

的模式彈出是由:提前

<div id="dialog1" title="IMPORTANT!"> 
    <div class="imaindateselleft_padding_right_red">Content here</div> 
</div> 

MANT感謝您的時間和幫助。實現這一

+0

根據控制檯 – Fil

回答

1

一種方法是用餅乾整合。讓它顯示對話框並將對話框中顯示的值存儲在cookie中,以便下次不顯示。

而且在這個方法中,我使用jQuery Cookie。 (隨意使用香草JavaScript到R/W餅乾)。我還假設你使用jQuery UI來調用dialog

$(document).ready(function() { 
    var dialogShown = $.cookie('dialogShown'); 

    if (!dialogShown) { 
     $(window).load(function(){ 
      $("#dialog1").dialog(); 
      $.cookie('dialogShown', 1); 
     }); 
    } 
    else { 
     $("#dialog1").hide(); 
    } 
}); 

上面的代碼是幹什麼的,只是在對話框彈出之前就設置了cookie。讓同一用戶再次看到對話的唯一方法是當cookie expires(您可以設置)或用戶清除cookie時。

編輯:第二種方法來實現這一點,如果瀏覽器支持它,你可以使用localStorage。

$(document).ready(function() { 
    var dialogShown = localStorage.getItem('dialogShown') 

    if (!dialogShown) { 
     $(window).load(function(){ 
      $("#dialog1").dialog(); 
      localStorage.setItem('dialogShown', 1) 
     }); 
    } 
    else { 
     $("#dialog1").hide(); 
    } 


}); 
+0

dialog()不是一個函數嗨,我已經試過你的代碼,但模式彈出不加載,div只顯示在頁面的頂部。但謝謝你的嘗試。 – DCJones

+0

@DCJones它寫入cookie的價值?你可以嘗試我的第二種方法嗎? – choz

+0

嗨,那種作品。但是當頁面第二次加載時,DIV出現在頁面的頂部。 – DCJones