Установить и получить localStorage в javascript не работает между 2 страницами html

Код external.js

var global = "parameter";
localStorage.setItem("param", global);
var storedValue = localStorage.getItem("param");
alert(storedValue);

Код страницы one.html

<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type = "text/javascript" src = "external.js"></script>

<a href = "two.html" >2nd page</a>

Код страницы two.html

<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type = "text/javascript" src = "external.js"></script>

<a href = "one.html" >1st page</a>

Я хочу получить доступ к значению переменной var storedValue на 2-й странице.

Пожалуйста, помогите мне добиться этого.

Когда вы пытаетесь получить localStorage на второй странице, любая ошибка или undefined, что он вам показывает, только сейчас попробовал ваш код и его работа на моем конце

Bharat 27.03.2018 07:56

Две страницы находятся в одном домене?

Amaldev ps 27.03.2018 07:57
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
248
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Практически он у вас уже есть, просто скопируйте то, что вы сделали в опубликованном вами Javascript, в контекст второй страницы:

var storedValue = localStorage.getItem("param");
alert(storedValue);

Хотя вместо этого лучше использовать точечную нотацию:

const storedValue = localStorage.param;
alert(storedValue);

Страница 1 Javascript:

const global = "parameter";
localStorage.setItem("param", global);

Страница 2 Javascript:

const storedValue = localStorage.getItem("param");
alert(storedValue);

Пример:

Иди сюда https://jsfiddle.net/ag2t8r0x/

а потом иди сюда https://jsfiddle.net/ag2t8r0x/1/

и вы увидите, что данные, хранящиеся на первой странице, извлекаются на второй странице.

@Noface, почему бы и нет? Я использую только точечную нотацию и никогда не испытывал проблем

Doomenik 27.03.2018 07:49

localStorage действительно постоянен (независимо от того, какую нотацию вы используете)

CertainPerformance 27.03.2018 07:50
jsperf.com/localstorage-get-set-vs-dot-notation/4 вот небольшой тест производительности, который я нашел
Doomenik 27.03.2018 07:51

Да @CertainPerformance, теперь он работает. Большое спасибо, друг.

Sonu Tyagi 27.03.2018 08:09

Основная ошибка вашего подхода заключается в том, что вы создаете элемент localStorage с именем "param" два раза. Так что в этом нет необходимости. Лучшее, что вы можете сделать, - это создать его на одной странице, а затем получать к нему доступ только с любой страницы. LocalStorage не зависит от страницы, поскольку сохраняется в памяти, а точнее в окнах:

%LocalAppData%\Google\Chrome\User Data\Default\Local Storage.

Лучший подход:

const global = "parameter";
localStorage.setItem("param", global); //storing the varable in memory.

который по существу создает параметр имени переменной в localStorage, а затем вы можете получить к нему доступ с той же или другой страницы как:

const storedValue = localStorage.getItem("param"); //Accessing the item
console.info(storedValue);

Спасибо, что указали на ошибку в комментариях.

localStorage - это нет, хранящийся в памяти, он хранится на жестком диске.

CertainPerformance 27.03.2018 08:08

Нет, компьютерная память полностью отделена от дискового хранилища.

CertainPerformance 27.03.2018 08:11

Так легко получить значение хранилища на странице two.html. Следуйте коду. Оно работает.

<body>
  <a href = "one.html">1st page</a>
  <script>
    $(document).ready(function() {
      var storedValue = localStorage.getItem("param");
      alert(storedValue);
    });
  </script>
</body>

Вы можете найти подробности здесь.

Другие вопросы по теме