Я пытаюсь реализовать ярлыки на веб-сайте. Ярлыки сохраняются в массиве следующим образом:
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 содержал эти ссылки и мог выполнять функции.