2015-06-28 3 views
0

В настоящее время я использую фреймворк Zurb, я хотел бы создать модальный, который появится при загрузке страницы. Я бы хотел, чтобы этот модальный файл хранил куки-файлы в пользовательском браузере, чтобы, если они посетили сайт, прежде чем они не будут показаны снова и снова.Магазин показывает модальный файл cookie в браузере пользователя

Вот как я попытался реализовать это, используя jQuery, который используется для инициализации основания. Примечание. Я использую оболочку jQuery no conflict, потому что я реализую ее с помощью нажатия слова.

jQuery(document).ready(function($){ 


$('#myModal2').foundation('reveal', 'open'); 

var shown = $.cookie('dialogShown'); 
     if (!shown) { 
      setTimeout(function() { 
        $('#myModal2').foundation({modal: true}); 
        $.cookie('dialogShown', 'true'); 
      }, 2000); 





     }}); 

Этот код не дает мне желаемый результат, модальное открывается при загрузке страницы снова и снова, без сохранения куки, я был бы очень признателен, если кто-то может помочь мне с этим. Спасибо

ответ

0

В случае, если кому-то еще интересно, я опубликовал решение, используя плагин jQuery cookies.

jQuery(document).ready(function($) { 
if ($.cookie('modal_shown') == null) { 
     $.cookie('modal_shown', 'yes', { expires: 7, path: '/' }); 
     $("#myModal2").foundation('reveal', 'open'); 
    } 
}); 
1

Код, который вы вставили, делает именно то, что вы написали.

После документа готовый открывается раскрыть модуль (см больше: http://foundation.zurb.com/docs/v/4.3.2/components/reveal.html)

И после того, что есть вы COOKIE магии. Вы должны проверить файл cookie, прежде чем открывать модальный, если вы хотите, чтобы описанное выше поведение. :)

+0

Спасибо @pavelloz Я довольно новичок в javascript, так как я понимаю, что мне нужно было бы поставить другую инструкцию if, чтобы проверить, отображается ли модальная коробка. 'if (показано === null) { // Ничего не делать } if (jQuery.cookie ('open')) { // Реакции }' Am i на правильном пути? – steamfunk

+0

jquery-cookie/[js-cookie] (https://github.com/js-cookie/js-cookie) возвращает 'undefined', когда файл cookie не найден. Поэтому вам нужно проверить «undefined» вместо «null». Если фундамент не использует устаревшую версию veeery. –

+0

@steamfunk, напишите себе список вещей, которые программа должна делать (пишите, а не думайте), например: 1) Проверьте, присутствует ли cookie 'show' (IMO нет необходимости в определенных значениях, undefined vs что-нибудь еще делать) 2) Если нет, покажите модальный 2a) Set cookie 3) Если да, верните Если у вас есть такой список, гораздо проще его расширить в код. Через некоторое время вы будете писать эти предложения в псевдокоде, а затем в живом коде. То, как мы изучаем языки :) – Pavelloz