Чтение нужного значения с массива куков

247
02 августа 2017, 23:21

Имеются куки:

_ym_uid=1501572828150021607; _ym_isad=2; value=11; _ga=GA1.2.889728148.1501572828; _gid=GA1.2.353711974.1501572828; _gat=1; _ym_visorc_45462804=w

Как мне получить значение 11 из value=11; (куки могут меняться местами, 11 тоже может менять от 0 до 99)?

Мой код был:

<input type="number" id="skidka" maxlength="2" min="1" max="99" style="width: 50px;" value="0" onchange="fun3()">
<script type="text/javascript">
        window.onload = function () {
        if (document.cookie.length != 0) {
        var nameValueArray = document.cookie.split("=");
        value = nameValueArray[1];
        document.getElementById("skidka").value = nameValueArray[1];
        }
    }
    function fun3() {
    var val = document.getElementById("skidka").value;
    if (val != 0 ) {
        value = document.getElementById("skidka").value;
        document.cookie = "value=" + val + ";expires=Fri, 5 Aug 2017 01:00:00 UTC;";
        }
    }
</script>

Он перестал работать после подключения счетчиков метрики, так как куков стало больше и, получается, что я не верно беру нужный кук.

Answer 1

На счёт правильности решения не уверен, но можно значение вытащить так:

var s = '_ym_uid=1501572828150021607; _ym_isad=2; value=11; _ga=GA1.2.889728148.1501572828; _gid=GA1.2.353711974.1501572828; _gat=1; _ym_visorc_45462804=w';
var value = s.split('value=')[1].split(';')[0];
Answer 2

Попробовал, Ваш код работает

<input type="number" id="skidka" maxlength="2" min="1" max="99" style="width: 50px;" value="0" onchange="fun3()">
<script type="text/javascript">
        window.onload = function () {
        if (document.cookie.length != 0) {
        var nameValueArray = document.cookie;
        document.getElementById("skidka").value = document.cookie.split('value=')[1].split(';')[0];
        }
    }
    function fun3() {
    var val = document.getElementById("skidka").value;
    if (val != 0 ) {
        value = document.getElementById("skidka").value;
        document.cookie = "value=" + val;
        }
    }
</script>
READ ALSO
Как работает эта магия c new Date?

Как работает эта магия c new Date?

Работает правильно, но что происходит? Как работает строчка где var total_days = вообще не понимаю, узнать дату на 32-й день?

330
Загрузка ресурсов веб-приложения в кэш

Загрузка ресурсов веб-приложения в кэш

ПриветДля того, чтобы пользователь видел красивый прелоадер загрузки сайта, я использую следующий код:

252
Собрать все js-файлы в один в webpack

Собрать все js-файлы в один в webpack

ПриветНачинаю работать с Webpack и сейчас мой конфиг выглядит так:

374
Какие методы реакта применить?

Какие методы реакта применить?

Мне нужно отправить запрос на url с некоторыми параметрами один раз, когда два поля являются валиднымиА далее уже вызывать этот же метод , но с другими...

259