Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Добавить cookies (https://javascript.ru/forum/misc/81972-dobavit-cookies.html)

Ubivectel 23.02.2021 09:23

Добавить cookies
 
Здравствуйте товарищи.

Потребовалось добавить сайту динамическое изменение размера шрифта для отдельных элементов, в итоге получился вот такой код:

$(document).ready(function(){
       var originalSize = $('.KIDE_msg_top').css('font-size');
       var originalSize = $('.ulcontent').css('font-size');
       var originalSize = $('#KIDE_txt').css('font-size');
      // reset
       $(".resetMe").click(function(){
      $('#KIDE_output').css('font-size', originalSize); 
      $('.ulcontent').css('font-size', originalSize); 
      $('#KIDE_txt').css('font-size', originalSize); 
      
       });
      
       // Increase Font Size
       $(".increase").click(function(){
      var currentDivSize = $('#KIDE_output').css('font-size');
      var currentDivSize = $('.ulcontent').css('font-size');
      var currentDivSize = $('#KIDE_txt').css('font-size');
      var currentDivSize = parseFloat(currentDivSize) + 1;
      $('#KIDE_output').css('font-size', currentDivSize);
      $('.ulcontent').css('font-size', currentDivSize);
      $('#KIDE_txt').css('font-size', currentDivSize);
      
      return false;
       });
      
       // Decrease Font Size
       $(".decrease").click(function(){
      var currentDivSize = $('#KIDE_output').css('font-size');
      var currentDivSize = $('.ulcontent').css('font-size');
      var currentDivSize = $('#KIDE_txt').css('font-size');
      var currentDivSize = parseFloat(currentDivSize) - 1;
      $('#KIDE_output').css('font-size', currentDivSize);
      $('.ulcontent').css('font-size', currentDivSize);
      $('#KIDE_txt').css('font-size', currentDivSize);

      return false;
       });
      });


Все работает, вот только он сбрасывает значения на дефолтные при каждом обновлении страницы, а очень бы хотелось, что бы запоминал на время сессии. Однако сколько не бился с куками, не удается правильно их прописать. :help:

рони 23.02.2021 09:50

Ubivectel,
бессмысленно писать имя переменной несколько раз

Ubivectel 23.02.2021 09:53

Да очень догадываюсь, что сделал громоздко и не рационально, но как упростить пока не понял

рони 23.02.2021 10:27

изменение размера шрифта по клику и сохранение
 
Ubivectel,
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
$(function(){
       var current = Number(localStorage.getItem("font") || 18);
       function setSize(n)
       {
       if(n === '') current = 18;
       else current += n;
       localStorage.setItem("font", current.toString());
       var font = {'font-size' : `${current}px`}
       $('#KIDE_output, .ulcontent, #KIDE_txt').css(font);
       }
       setSize(0);
       // reset
       $(".resetMe").click(function(){
       setSize('')
       });
       // Increase Font Size
       $(".increase").click(function(){
       setSize(1)
       });
       // Decrease Font Size
       $(".decrease").click(function(){
       setSize(-1)
       });
});
    </script>
</head>
<body>
<button class="resetMe">resetMe</button>
<button class="increase">increase</button>
<button class="decrease">decrease</button>
<div id="KIDE_output">KIDE_output</div>
<div id="KIDE_txt">KIDE_txt</div>
<div class="ulcontent">ulcontent</div>
</body>
</html>

Ubivectel 23.02.2021 10:50

Спасибо рони, как всегда все заработало, но хоть убей не понимаю почему первый кривой код куки не писал, а твой все записывает без дополнительных телодвижений )))

рони 23.02.2021 11:19

Ubivectel,
https://developer.mozilla.org/ru/doc...w/localStorage

Ubivectel 27.02.2021 09:58

В продолжение;
Попытался проделать тоже самое с цветом шрифта, как я понял это оно:

kide.insertNewContent = function (uid, name, text, url, ti, color, rango, id, sesion, yo, hora, img) {
	if (text.replace(/ /g, "") != "") {
		let c = color.length > 0 ? 'style="color:#' + color + '" class="KIDE_msg"' : 'class="KIDE_dc_' + this.rangos[rango] + ' KIDE_msg"';


Попробовал так:

let c = localStorage.getItem(color.length > 0 ? 'style="color:#' + color + '" class="KIDE_msg"' : 'class="KIDE_dc_' + this.rangos[rango] + ' KIDE_msg"');


Но не прокатило, вообще цвет перестал работать.

Ubivectel 27.02.2021 10:16

Однако засомневался, не тут ли надо править:

save_config: function(param, value) {
        let config = document.cookie.match(/kide_config=([^;]*)/);
        if (config && config[1]) {
            config = decodeURIComponent(config[1]);
            if (config.search(eval('/' + param + '=/')) > -1)
                config = config.replace(eval('/' + param + '=[^;]*/'), param + '=' + value);
            else
                config += ';' + param + '=' + value;
        } else
            config = param + '=' + value;
        document.cookie = 'kide_config=' + encodeURIComponent(config) + '; path=/';

рони 27.02.2021 13:16

Ubivectel,
не могу подсказать, информации недостаточно.

Ubivectel 27.02.2021 14:08

Не пойму какой именно фрагмент кода выложить, вот оба файла

Файл с первым фрагментом:

https://noviy-kovcheg.ru/components/...ult/js/kide.js

строка: 84

второй:

https://noviy-kovcheg.ru/components/com_kide/js/base.js

строка: 366


Часовой пояс GMT +3, время: 16:05.