работа document.cookie
Здравствуйте!
Есть код $(function() { $left = $(".leftname2"), $contex = $(".contextlink0"); $left.on("click", function() { $left.not($(this).addClass("active")).removeClass("active"); var i = $left.index(this); $contex.not($contex.eq(i).show()).hide(); if(id == "page1"){document.cookie="m_sf1=1; path=/;";} if(id == "page2"){document.cookie="m_sf1=2; path=/;";} if(id == "page3"){document.cookie="m_sf1=3; path=/;";} }) }); <div class="leftname2 active" onclick="show('page1');return false;">Новые</div><div class="leftname2" onclick="show('page2');return false;">Обсуждаемые</div><div class="leftname2" onclick="show('page3'); return false;">Интересные</div> </div> <div class='menuleft'> <div id="page1" class="contextlink0"> <div class="com_line"><a href="/forum_topic_view.php?gr=27">Анекдоты</a></div> <div class="com_details"><div class='font12'><a href='/userinfo.php?str=5'>potapows</a><span class="font10"><span class='forum-posts4' title='Просмотров'>7 Августа 2016 в 20:51</span></span></div></div> <div class="com_line"><a href="/forum_topic_view.php?gr=3">Новый буксик</a></div> <div class="com_details"><div class='font12'><a href='/userinfo.php?str=3'>Добрый</a><span class="font10"><span class='forum-posts4' title='Просмотров'>26 Июля 2016 в 20:32</span></span></div></div> <div class="com_line"><a href="/forum_topic_view.php?gr=2">Правила проекта</a></div> <div class="com_details"><div class='font12'><a href='/userinfo.php?str=1'>Winko.Ru</a><span class="font10"><span class='forum-posts4' title='Просмотров'>25 Июля 2016 в 19:03</span></span></div></div> <div class="com_line"><a href="/forum_topic_view.php?gr=1">Мы открылись!</a></div> <div class="com_details"><div class='font12'><a href='/userinfo.php?str=1'>Winko.Ru</a><span class="font10"><span class='forum-posts4' title='Просмотров'>25 Июля 2016 в 19:01</span></span></div></div> </div> <div id="page2" class="contextlink0"> <div class="com_line"><a href="/forum_topic_view.php?gr=2">Правила проекта</a></div> <div class="com_details"><div class='font12'><a href='/userinfo.php?str=1'>Winko.Ru</a><span class="font10"><span class='forum-posts3' title='Комментариев'>27</span><a href="/forum_topic_view.php?gr=2"><span class='comment-answer'> </span>Ответить</a></span></div></div> <div class="com_line"><a href="/forum_topic_view.php?gr=3">Новый буксик</a></div> <div class="com_details"><div class='font12'><a href='/userinfo.php?str=3'>Добрый</a><span class="font10"><span class='forum-posts3' title='Комментариев'>25</span><a href="/forum_topic_view.php?gr=3"><span class='comment-answer'> </span>Ответить</a></span></div></div> <div class="com_line"><a href="/forum_topic_view.php?gr=27">Анекдоты</a></div> <div class="com_details"><div class='font12'><a href='/userinfo.php?str=5'>potapows</a><span class="font10"><span class='forum-posts3' title='Комментариев'>23</span><a href="/forum_topic_view.php?gr=27"><span class='comment-answer'> </span>Ответить</a></span></div></div> <div class="com_line"><a href="/forum_topic_view.php?gr=1">Мы открылись!</a></div> <div class="com_details"><div class='font12'><a href='/userinfo.php?str=1'>Winko.Ru</a><span class="font10"><span class='forum-posts3' title='Комментариев'>1</span><a href="/forum_topic_view.php?gr=1"><span class='comment-answer'> </span>Ответить</a></span></div></div> </div> <div id="page3" class="contextlink0"> <div class="com_line"><a href="/forum_topic_view.php?gr=3">Новый буксик</a></div> <div class="com_details"><div class='font12'><a href='/userinfo.php?str=3'>Добрый</a><span class="font10"><span class='forum-posts2' title='Просмотров'>879</span><a href="/forum_topic_view.php?gr=3"><span class='comment-answer'> </span>Ответить</a></span></div></div> <div class="com_line"><a href="/forum_topic_view.php?gr=2">Правила проекта</a></div> <div class="com_details"><div class='font12'><a href='/userinfo.php?str=1'>Winko.Ru</a><span class="font10"><span class='forum-posts2' title='Просмотров'>493</span><a href="/forum_topic_view.php?gr=2"><span class='comment-answer'> </span>Ответить</a></span></div></div> <div class="com_line"><a href="/forum_topic_view.php?gr=1">Мы открылись!</a></div> <div class="com_details"><div class='font12'><a href='/userinfo.php?str=1'>Winko.Ru</a><span class="font10"><span class='forum-posts2' title='Просмотров'>298</span><a href="/forum_topic_view.php?gr=1"><span class='comment-answer'> </span>Ответить</a></span></div></div> <div class="com_line"><a href="/forum_topic_view.php?gr=27">Анекдоты</a></div> <div class="com_details"><div class='font12'><a href='/userinfo.php?str=5'>potapows</a><span class="font10"><span class='forum-posts2' title='Просмотров'>201</span><a href="/forum_topic_view.php?gr=27"><span class='comment-answer'> </span>Ответить</a></span></div></div> </div> он открываем вкладки, хочу сделать чтоб запомнил какую вкладку, открыл но не сохраняет на php вывожу вот так <? echo $_COOKIE['m_sf1'];?> |
Сначала вместо этой лапши
if(id == "page1"){document.cookie="m_sf1=1; path=/;";} if(id == "page2"){document.cookie="m_sf1=2; path=/;";} if(id == "page3"){document.cookie="m_sf1=3; path=/;";} напиши одну строку document.cookie='m_sf1='+id+'; path=/;'; Как записывается кука на жабе я не знаю, считаем что ты правильно записываешь, то есть в куке m_sf1 будет page1, или page2 и так далее, что полезнее, поскольку page1, page2, и так далее - это готовые id, как и следует из кода записи. В куку можно записать 4096 байт, так что на page1 хватит. Поскольку вкладки управляются жабой, то нет нужды ковырять эту куку на сервере, просто прочитай ее, получи id в переменную и запусти тот же самый код управления вкладками. Цитата:
|
Цитата:
|
Посмотрел твой "есть код", которого там не должно быть вообще. У тебя где-то есть функция show(id){}; судя по onclick="show('page1');return false;" Так ты ее и наполни фаршем.
function show(id){ var ckey='m_sf1'; /* если id не определено, то делается попытка получить его из кук если и там нет, то по умолчанию page1 и новое (или старое) id сразу же сохраняется */ if(!id) id = Cookie.load(ckey) || 'page1'; Cookie.save(ckey,id); /* тут вся твоя лапша */ return false; } и тогда onclick="return show('page1');" И где-нибудь на загрузке страницы пишешь show(); без аргументов. ЗЫ Cookie.load и Cookie.save - это абстракция. Заменяй на свои коды записи чтения куки. |
Цитата:
|
Не предусмотрено блин, офигеть, еще и плугин нужен, оборзели. Короче, вот так должно работать
var Cookie={ save: function(key, value) { document.cookie = key + '=' + value + '; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/'; }, load: function (key) { var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)'); return keyValue ? keyValue[2] : null; } }; Хотя вроде бы все имена и значения должны быть в кавычках. Хз. |
я не сильно разбираюсь, можно готовый код?
|
ктонибудь поможет?
|
Цитата:
Сначала прочесть о параметрах кук. Если так затруднительно их устанавливать/проверять посредством document.cookie можете использовать плагин для jQuery. А ваш JS-сценарий должен выполнять следующее - при загрузке страницы проверять установлена ли кука с нужным именем, и если да, то открыть вкладку в ней указанную, иначе вкладка по умолчанию. Это может делать и сервер, считывая куку, но лучше отдать это на откуп клиенту. Щелчки по вкладкам, это запись куки. Попробуйте, не получится, помогут. Только не надо для примера выкладывать длиииный html, хватит и трех DIV с одним словом. |
Цитата:
|
Цитата:
|
Сам ничего не знает, а пальцы гнет. Слив защитан.
Нет никакой зависимости, куки уже 100500 лет работают одинаково во всех браузерах. Проблемы возникают только у тех, кто пишет всякую бнопню в path |
Цитата:
Ты ноль, и не задавай мне более тупых вопросов, на дураков я время тратить не намерен. |
ребят ну помогите пожалуйста же
|
Цитата:
|
Цитата:
porezon, блин, там же все написано. Ну давай сюда код той функции show() ж. |
Кстати, а зачем тут куки, на сервер же все равно ничего не будет передаваться, так что юзай ТС это https://developer.mozilla.org/en-US/...eb_Storage_API
|
Ладно, смотри как можно сделать применительно к твоей каше. Сперва надо засунуть кнопки табов в контейнер с классом menuTabs. Класс нужен как идентификатор.
<span class="menuTabs"> <div data-for="page1" class="leftname2 active">Новые</div> <div data-for="page2" class="leftname2">Обсуждаемые</div> <div data-for="page3" class="leftname2">Интересные</div> </span> При этом класс активной кнопки - 'active' - должен быть. Он может быть на любой кнопке, но только один и должен быть в html'е. Второе. Для связи между кнопками и страницами нельзя применять индекс элемента в коллекции. Хотя на практике оно и совпадает, в теории порядок элементов на странице и в DOM'e имеет право не совпадать. Для связи использован тег data-for. Третье. Класс active должен быть реальным css-правилом, которое показывает активную кнопку, а в каше страниц соответствующая активная страница должна быть видимой, а остальные - нет. Это можно сделать вписав в класс .contextlink0{display:none}, а активной странице через id: #page1{display:block;} То есть без скриптов, по умолчанию, должна быть активной одна кнопка и видимой только ее страница. После своих табов или в конце всего хтмля вставляешь такой вот скрипт, обновляешь страницу и смотришь что получилось и читаешь в консоли, что может напишут, ибо я ничего не запускал и не собираюсь. (function(){ var pid=function(){return activeTab.getAttribute('data-for');}, menuTabs=document.querySelector('menuTabs'), activeTab=menuTabs.querySelector('active'), pageId=pid(), tog=function(el){ var s = document.getElementById(pageId).style; s.display=(s.display=='none')?'block':'none'; activeTab.classList.toggle('active'); if(el){ activeTab=el; pageId=pid(); localStorage.lastTabId=pageId; tog(); } }; menuTabs.addEventListener('click', function(e){ var el=e.target; if(el.classList.contains('leftname2') && el!==activeTab) tog(el); } ); var id=localStorage.lastTabId; if(id && id!=pageId) tog(menuTabs.querySelector('[data-for="'+id+'"]')); })(); Скрипт работает живьем, то есть ничего не индексирует и не кеширует. |
Часовой пояс GMT +3, время: 09:57. |