Я пытаюсь отобразить Bootstrap модальные avec 3 страницы, просмотренные на моем веб-сайте, и найти актуализированное решение этого вопроса с помощью плагина JS-Cookie.
Я попробовал этот код, но он не работает:
$(document).ready(function () {
// create cookie
var visited = Cookies('visited'); // visited = 0
if (visited >= 3) {
// open fancybox after 3 secs on 4th visit or further on the same day
$('#my_modal').modal('show');
} else {
visited++; // increase counter of visits
// set new cookie value to match visits
Cookies('visited', visited, {
expires: 1 // expires after one day
});
return false;
}
}); // ready
Что должен делать приведенный выше код: запросить модал после перезагрузки на 4 страницы, как здесь
Что не работает: я перезагружаю страницу, но модал не появляется
Вот мое состояние файла cookie (в chrome):
Изображение по этой ссылке
Это пример кода, который на самом деле работает для отображения модального состояния при первом посещении веб-сайта:
$(document).ready(function() {
if (Cookies('pop_welcome') == null) {
$('#my_modal').modal('show');
Cookies('pop_welcome', '31', { expires: 31 });
}
});
** - Решение - **
Вы можете найти решение в коде кода @greedchikara
код:
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
var visited = readCookie('tester') || 1;
if (visited > 2) {
$('#my_modal').modal('show');
} else {
visited++;
createCookie('tester', visited, 1);
}
Можете ли вы помочь мне?
Спасибо
Вот код плагина JS cookie.