Почему мои входы localStorage не сохраняются на страницах моего персонального компьютера? - PullRequest
2 голосов
/ 09 декабря 2010

Я испытываю метод localStorage HTML5 для сохранения данных.Насколько я понимаю, localStorage должен быть постоянным между страницами в одном домене.Пожалуйста, исправьте меня, если я ошибаюсь.

Однако, по некоторым причинам, кажется, что мои значения localStorage не сохраняются между страницами в одном и том же каталоге на моем компьютере.Разве это не считается одним и тем же доменом в этом случае?Я немного растерялся.

Вот код для двух рассматриваемых документов:

Документ 1 (при условии, что jQuery был включен в другом месте документа)

<script type="text/javascript">
$(document).ready(function() {
    $("form#settings").submit(function(event) {
        event.preventDefault();
        localStorage["display"] = $("input[name='display']:checked").val();;
        localStorage["message"] = $("#disp_message").val();
    });
});
</script>
<form id="settings">
    <h1>Display</h1>
    <input type="radio" name="display" id="message" value="message" />
    <label for="message">Replace with message:</label>&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="text" id="disp_message" size="60" value="Test content." /><br />
    <input type="radio" name="display" id="hide" value="hide" />
    <label for="hide">Hide entries</label>
    <br />
    <br />
    <input type="submit" />
</form>

Документ 2

<html><body>
    <script>
    document.write(localStorage["message"]);
    document.write("<br />");
    document.write(localStorage["message"]);
    </script>
</body></html>

Просто, чтобы уточнить код касанием, идея в основном состоит в том, чтобы позже использовать его для расширения Google Chrome, чтобы скрыть определенный контент на основепо определенным критериям.Документ 1 будет служить основой для страницы параметров, а документ 2 будет основой для фактического сценария расширения.Но это не имеет значения для моего вопроса.

В качестве последнего пояснения я попробовал все три способа хранения и доступа к переменной localStorage, а именно: localStorage ["key"] = "value";localStorage.key = "значение";localStorage.setItem ("key", "value");

Есть идеи?

1 Ответ

2 голосов
/ 09 декабря 2010

Если вы тестируете в Chrome, все, что находится под file://, даже папки в одном и том же каталоге считаются отдельными доменами, поэтому включается одна и та же политика происхождения, и localStorage уникален для каждого.

В данный момент у меня нет настроенной тестовой среды, но я запускаю с флагом командной строки:
--allow-file-access-from-files должно быть тем, что вы ищете.

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