Что-то записываем в куки (и используем)

Смена дизайна, ночной режим и т.д.

#1 10 апреля 2021 в 08:49
Было использовано для включение ночного режима в одной соц. сети. ИМХО, достаточно элегантное решение, добавляет к body тег. Можно подправить и использовать что-то скрывать и т.д. Под JQuery .on() должно работать.
  1.  
  2. // Toggle dark mode, toggle menu mode... etc...
  3. $(document).on('click', '#toggledark', function() {
  4. var mode = getCookie("dayNight");
  5. var d = new Date();
  6. d.setTime(d.getTime() + (365 * 24 * 60 * 60 * 1000)); //365 days
  7. var expires = "expires=" + d.toGMTString();
  8. if (mode == "dark") {
  9. document.cookie = "dayNight" + "=" + "light" + "; " + expires + ";path=/";
  10. document.getElementsByTagName('body')[0].classList.remove('dark');
  11. } else {
  12. document.cookie = "dayNight" + "=" + "dark" + "; " + expires + ";path=/";
  13. document.getElementsByTagName('body')[0].classList.add('dark');
  14. }
  15. });
  16. // TODO: move to util
  17. function getCookie(cname) {
  18. var name = cname + "=";
  19. var ca = document.cookie.split(';');
  20. for (var i = 0; i < ca.length; i++) {
  21. var c = ca[i];
  22. while (c.charAt(0) == ' ') {
  23. c = c.substring(1);
  24. }
  25. if (c.indexOf(name) === 0) {
  26. return c.substring(name.length, c.length);
  27. }
  28. }
  29. return "";
  30. };
  31.  
Собственно в стилях, что-то использовать подобное:
  1.  
  2. .dark {
  3. background: #333;
  4. }
  5.  
А вызывать в зависимости от версии, движка. Что читает куки, пример, как использовался на оригин. сайте:
  1.  
  2. if(\Request::getCookie('dayNight') == 'dark') { ...
  3.  
Возможно будет полезно…
#2 10 апреля 2021 в 13:52

Что читает куки, пример, как использовался на оригин. сайте:

@Evg
"на оригин. сайте" — имеется ввиду сайт, откуда взят скрипт или у нас в системе где-то есть этот пример?
Всё забывал поднять такую тему. Спасибо, что напомнили!
#3 10 апреля 2021 в 16:03
Не совсем корректно написал, на многих сайтах. Например:
github.com/Phuks-co/throat/blob/cb13861834a43842a38cedfb6c87f16d61193561/app/static/js/main.js#L292
Просто конкретные сайты не стал указывать, чего форум ссылками засорят. Разные варианты скрипта, на GitHub без Квери, я разместил с jQuery (и урезал, должно работать), кто во что. Лицензия MIT, т.е. можно легко использовать, где угодно.
Иногда нужен готовый вариант, проверенный, а кто-то сам пишет.
В теме ответили исчерпывающе, хорошо.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.