2013-10-11 1 views
2

Итак, у меня есть следующий код, который делает то, что мне нужно, но теперь ему сказали, что ему нужно работать в пределах ie7, а sessionStorage не работает в этом браузере. Я не очень хорошо знаю куки, поэтому мне было интересно, может ли кто-нибудь указать мне в правильном направлении.sessionStorage работает, но нужен файл cookie

var yetVisited = sessionStorage['visited']; 
    if (!yetVisited) { 

     $j("#adspaceModal").modal("show").on("shown", function() { 
    window.setTimeout(function() { 
     $j("#adspaceModal").modal("hide"); 
    }, 20000); 
}); 

     // open popup 
     sessionStorage['visited'] = "yes"; 
    } 

На данный момент мой модальное появляется первый раз, когда вы заходите на главную страницу и не появляется, если я не открыть его в новой вкладке/окне, который работает, как я хочу его.

Любая помощь очень ценится.

+0

имеют вид плагина [jQuery Cookie] (https://github.com/carhartl/jquery-cookie) –

ответ

3

Вы можете использовать функцию обнаружения, чтобы узнать, если sessionStorage доступен, и если не использовать JQuery Cookie plugin:

var yetVisited = sessionStorage ? sessionStorage['visited'] : $.cookie('visited'); 
if (!yetVisited) { 
    $j("#adspaceModal").modal("show").on("shown", function() { 
     window.setTimeout(function() { 
      $j("#adspaceModal").modal("hide"); 
     }, 20000); 
    }); 

    // open popup 
    sessionStorage ? sessionStorage['visited'] = 'yes' : $.cookie('visited', 'yes'); 
} 

На самом деле это, вероятно, лучше абстрагироваться это его собственной функции:

function storage(key, value) { 
    if (!value) { 
     // getter 
     return window.sessionStorage ? window.sessionStorage[key] : $.cookie(key); 
    } 
    else { 
     // setter 
     window.sessionStorage ? window.sessionStorage[key] = value : $.cookie(key, value); 
    } 
} 
+0

Привет, Рори, лучший фрагмент кода, похоже, сделал трюк. Спасибо за помощь. – adamhuxtable

 Смежные вопросы

  • Нет связанных вопросов^_^