2016-09-12 8 views
0

これはwp中心の問題であるかどうかわかりませんが、これまでに行ったことがあり、WordPress環境で動作するようにはできません。基本的には、最初の訪問時にはモーダルダイアログボックスを表示したいが、同じセッションでの次回の訪問では表示しない。ローカルストレージ - wpページで一度モーダルを表示

function slideIn() { 
    jQuery('#overlay').fadeIn('fast'); 
} 

function slideOut() { 
    jQuery('#overlay').fadeOut('fast'); 
} 
jQuery(function() { 
    //local storage lasts until cache cleared 
    if(sessionStorage.getItem('slideState') != 'shown'){ 
     slideIn(); 
     sessionStorage.setItem('slideState','shown'); 
    } 
    jQuery(document).on('click', '#popInClose', function(e){ 
     slideOut(); 
     e.preventDefault(); 
     sessionStorage.setItem('slideState','shown'); 
    }); 
}); 

初めてページを読み込むと、モーダルが期待通りに表示されます。それを閉じてページをリロードするか別のページに移動すると、再び表示されますが、これは望ましくありません。

答えて

2

いくつかのデフォルトを設定してから操作するだけで済みます。このようなものはうまくいくでしょう。

var state = (sessionStorage.getItem('seen') == 'seen') ? 'seen' : 'unseen'; 
    if (state == 'seen') { 
     slideOut(); //Or whatever to hide the modal 
    } 
    else { 
     slideIn(); //Or whatever to show the modal 
     sessionStorage.setItem('seen','seen'); //Set state as seen 
    } 
関連する問題