Сохранить ссылку на функцию в cookie - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь реализовать ярлыки на веб-сайте. Ярлыки сохраняются в массиве следующим образом:

var shortcuts = [{ctrl:true, shift:false, alt:true, key:70, task:enableFilter, descr:"search in your bookmarks"}, {ctrl:true, shift:false, alt:true, key:83, task:settings, descr:"open settings"}, ...}

Свойство 'task' - это функция, которая вызывается при каждом использовании ярлыка. Я хочу сохранить этот массив в cook ie, чтобы запомнить изменения, которые были внесены в него пользователем. Поэтому я вызываю bakeCookie('shortcuts', shortcuts):

function bakeCookie(name, value) {
    exdays = 365;
    var d = new Date();
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
    var expires = "expires="+d.toUTCString();
    var cookie = [name, '=', JSON.stringify(value), ';' + expires].join('');
    document.cookie = cookie;
}

Однако результирующая строка в var cookie не включает свойство task:enableFilter/settings, что приведет к тому, что код обнаружит привязку, но ничего не сделает при refre sh. Я думаю, что JSON.stringify() просто не работает с функциями, но я довольно плохо знаком с Javascript в целом, поэтому, пожалуйста, не стесняйтесь давать фундаментальные объяснения на случай, если я что-то фундаментально не понял.

Как мне запишите shortcut -array , включая эти ссылки на функции для повара ie таким образом, чтобы при перезагрузке мой shortcuts -array содержал эти ссылки и мог выполнять функции.

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