Я использую Greasemonkey/Tampermonkey для посещения страниц и внесения изменений в таблицу из 100 элементов на основе того, что находится на текущей странице.хранение и извлечение 100-элементного аэродрома
Кратковременное хранение и манипуляция массивами работают нормально, но я хочу хранить данные на постоянной основе. Я пробовал GM_getValue/GM_setValue, GM_SuperValue, localStorage и indexedDB, но я явно пропустил что-то фундаментальное. Кажется, мне не удается написать массив в постоянное хранилище, а затем прочитать его обратно в переменную, где я могу получить доступ к каждому элементу, так что variablename [32] на самом деле является 32-м элементом в таблице. (Ну, 33-й, если вы начинаете считать на ноль, что я делаю.)
Мне нужен доступ ко всей таблице из 100 элементов во время работы скрипта, потому что мне нужно вывести часть или все ее на самой странице , В самом основном случае у меня есть цикл for, который идет от 0 до 99, каждый раз печатает значение variablename [i].
У меня нет предрасположенности к какому-либо методу, я просто хочу, чтобы работа фрикинга работала в сценарии Greasemonkey/Tampermonkey.
К верхней части сценария у меня есть это:
for (var i=0; i<=99; i++) {
currentData[i] = localStorage.getItem(currentData[i]);
}
Целью вышеуказанного раздела является чтение 100 записей в массив currentData. На самом деле это не работает для меня сейчас, вероятно, потому, что я не правильно запоминаю вещи в первую очередь.
В середине, после изменения одного из элементов, я хочу, чтобы заменить его, делая это:
localStorage.setItem(currentData[specificElementToChange], differentStuff);
Целью выше является изменение одного из 100 строк данных и сохранить его навсегда , поэтому в следующий раз, когда код в верхней части будет прочитан, он вытащит все 100 записей, причем один элемент будет изменен указанной выше строкой.
Это общий принцип.
Я не могу сказать, не работает ли я то, что я делаю, из-за какой-либо проблемы с безопасностью в Firefox/Chrome или если я хочу сделать это (постоянно сохраняя массив, где каждый раз, когда я обращаюсь к данной странице, один элементные изменения) невозможно.
Важно, чтобы я обращался к массиву с использованием формата переменной [element], но помимо этого, каким-либо образом я могу хранить эти данные и извлекать их, просто все в порядке со мной.
Что вы предлагаете для этого?
Спасибо!
Как можно выбрать элементы в localStorage? Вы сами создаете их перед циклом 'for', или они уже существуют? Возможно, вам лучше сохранить ваш массив как один элемент, а не хранить каждый отдельный индекс в качестве своего собственного элемента. Вы можете сделать это с помощью JSON: http://stackoverflow.com/a/3357615/551093 –
При первом запуске скрипта я устанавливаю значения по умолчанию для каждого из элементов. План состоит в том, чтобы прокомментировать эту строку после первого успешного запуска, а затем только изменить один элемент за раз. Я никогда не получал все, что работал, хотя я никогда не выполнял этот план. – greenfern
Хранение массива как одного элемента не является хорошим, потому что каждый элемент сам является сложной строкой определенной длины. Я на самом деле fudging двумерный массив, используя одномерный массив с несколькими элементами в каждой отдельной строке. Или пытаться в любом случае. Является ли основной принцип хранения/чтения переменной [i] даже возможной? – greenfern