Обращение к глобальным переменным из другого документа
Есть два html документа first.html и second.html
Есть два файла js first.js и second.js
Я объявляю две глобальные переменные let arr=[]; let str = "Hello Kitty!";
В документе first.html по нажатию на кнопку срабатывает функция которая присваивает новые значения
для arr и str
После нажатия на кнопку, я запускаю второй документ second.html для которого в скрипте second.js пытаюсь обратиться к переменным из первого скрипта first.js
Но документ выводит значения первоначальные. А мне нужны уже измененные. Подскажите пожалуйста как это сделать
вот файлы
файл first.html:
<head>
<script src="first.js"></script>
</head>
<body>
<button id="btn">KNOPKA</button>
</body>
файл first.js:
window.addEventListener("DOMContentLoaded", init);
let arr = [];
let str = "Hello Kitty!";
function buttonClick() {
arr = [1, 2, 3];
str = "Hello Dolly";
}
function init() {
let button = document.getElementById("btn");
button.addEventListener("click", function() {
buttonClick()
});
}
файл second.html:
<body>
<script src="first.js"></script>
<script src="second.js"></script>
</body>
файл second.js:
alert(arr);
alert(str);
Ответы (3 шт):
В Вашем случае Вы переходите на новую страницу, где загружаете оба файла со скриптами по новой, соответственно значения будут приведены к исходным.
Обьявите требуемые Вам переменные один раз на той странице, которая будет загружена первой, например на index.html, после чего Вы сможете обращаться к ним из обоих ваших файлов:
// head tag файла index.html
<script>
let arr = []
let str = "Hello Kitty!"
</script>
Лучше будет присвоить их глобальному объекту window перед загрузкой скриптов:
// head tag файла index.html
<script>
window.arr = []
window.str = "Hello Kitty!"
</script>
Решил ВОПРОС так. Использовал localStorage. Правда он хранит строковые значения, но ничего Джаваскрипт всемогущ, можно переделать!!!!!!