Как моя функция Getcookie считывает cookie из строки document.cookie? - PullRequest
0 голосов
/ 27 сентября 2018

Может кто-нибудь, пожалуйста, помогите мне понять, что происходит в функции Getcookie.Я пытаюсь получить мое глубокое понимание того, что происходит в каждой строке кода.

function Getcookie(name) {

var dc = ";" + document.cookie
var start = dc.indexOf(";" + name + "=")

if(start == -1) return false

start += name.length + 2 // Why is 2 being added here 
var end = dc.indexOf(";", start)
end = (end == -1) ? dc.length: end

return decodeURI(dc.substring(start, end));

}

1 Ответ

0 голосов
/ 27 сентября 2018

Единственный реальный вопрос, который я вижу: «Почему здесь добавляется 2».

document.cookie выглядит так:

name1=value1;name2=value2;name3=value3...

Если name = "name2", startбудет индекс ;name2= в этой строке, и мы хотим получить value2.Чтобы перейти от начала этой строки к концу, мы добавляем длину name2, а затем дополнительные 2 для символов ; и =.Теперь start указывает сразу за символом =, который является началом value.

. После этого мы ищем следующий ; символ и устанавливаем end в его индекс.Если он не найден, мы устанавливаем его на dc.length (у вас есть опечатка, dec должно быть dc).Тогда значение равно всему от start до end.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...