Как сделать обёртку для функции?
Как сделать, чтобы вот так работало:
local_storage['name'] = 'sdfsf' var s = local_storage['name'] Так явно не будет работать... function local_storage(name) { return localStorage[name] } Т.е. засунуть localStorage в функцию, оставив для неё такой же синтаксис... |
https://learn.javascript.ru/decorators
Нихрена не понятно... Так? function local_storage(name) { return function() { return localStorage.apply(name) } } |
|
Если так сделать:
local_storage = localStorage То как к массиву нельзя обращаться? А как функцию сделать? Просто хотел попобовать сделать 1 файл, подключать его везде, где нужно сохранить/получить. Может так долбаный хром будет считать хранилище для этого файла. |
Цитата:
Цитата:
const local_storage = new Proxy(localStorage, { get: (target, prop) => JSON.parse(target.getItem(prop)), set (target, prop, value) { target.setItem(prop, JSON.stringify(value)) } }) local_storage['name'] = 'sdfsf' alert(local_storage['name']) |
Пишет:
Цитата:
|
Артист, так как писал тут, то допустил ошибку, сейчас все должно работать.
|
Спасибо )
Я погуглил пока что, так тоже работает: const local_storage = new Proxy ( localStorage, { get(target, prop) { return target.getItem(prop) }, set(target, prop, value) { target.setItem(prop, value) return true } } ) local_storage['name'] = 'sdtyuf' alert(local_storage['name']) |
Цитата:
|
Но зачем? К локалсотраджу можно и так обращаться как к объекту, бай дезижн блин. =\
А прокси не работает в IE. Ни в каком IE. Цитата:
|
Цитата:
Цитата:
Как же мне эти настройки сохранить, если у меня3 разных домена получается. Фоновая страница - 1 Попуп(при нажатии на приложение) страница - 2 Сайт - 3 А настройки одни и те же... 30 чекбоксов, 1 кнопка и строка в 5 символов. |
Цитата:
страница в ифрейме будет читать/сохранять настройки. А общаться с попупом и фоновой страницей - например, через сообщения https://learn.javascript.ru/cross-wi...th-postmessage |
Aetae, наркоманы - тоже люди :agree:
|
Не получится. (
Само приложение может по сайту лазить и без открытой вкладки с ним. Т.е. когда страница открыта, я из неё часть ссылок получаю(чтобы поменьше дергать сайт запросами), а так же часть настроек прямо на странице разместил. Асинхронный метод получения из других файлов не подходит. Т.к. кругом проверки этих чекбоксов... Может другое что попробовать? Что из этого пошустрее? Цитата:
|
Цитата:
Если бы я знал JS, таких проблем бы не возникало... Я даже не знаю, что такое "iframe... |
Если пишешь расширение, потрудись изучить хотбы список API, что тебе предоставляется.
Не нужно даже вникать, достаточно пробежаться взглядом по именам. Например тебе нужен chrome.storage. И знание конкретного языка тут не при чём, перед применением инструмента следует с ним ознакомиться хотя бы поверхностно. |
Цитата:
Это же милое дело - отказаться изучать предмет, отказаться от доказанной сущности и надув щеки требовать нечто иное. Нет не то, другое несите. Не то, и это не то, и то не это, аазаза, рряя, я самый нечастный, ничего мне не нравится, а через жопу не получается. Иди нах нарцисс. |
Цитата:
Спасибо. И опять же, не будет ничего работать с этим асинхронным получением. Я подключаю скрипт к странице, и сразу же выполняется код, не дожидаясь ответа... Сохранение: chrome.storage.sync.set({'ключ': 'значение'}) Получение: var on_off = 0 // Глобальный массив для хранения значения chrome.storage.onChanged.addListener // Перехват изменения хранилища ( function(changes, namespace) // Обработчик { if(changes.? == 'ключ') on_off = changes[?].newValue // Тут не понял как делать, как будто при изменении 1 ячейки нужно всё хранилище перебирать... } ) function show_value_storage() { if(on_off == 1) alert('Включено') else alert('Выключено') } show_value_storage() Хотя можно сначала получить значение, а потом выполнять код т.е. засунуть код в обработчик ответа от хранилища, но ключей - то несколько... Цитата:
Помогать или нет - это твой выбор, если тебя так бесят новички - можно просто игнорировать такие темы. И я не считаю себя несчастным, просто попалось несколько трудных моментов, с которыми я сам справиться не смог. Всё что более - менее мне понятно я сам нагуглил, по примерам, аналогии - кое как накатал. |
Часовой пояс GMT +3, время: 18:43. |