#javascript #jquery
Допустим открыта страница в браузере mysite.com/page-1.php в которой есть элемент: Далее в новой я открываю страницу mysite.com/page-2.php в которой есть js команда которая должна сменить текст в элементе test-1 в первой вкладке - mysite.com/page-1.php. Возможно ли как то выполнить данную задачу средствами js/jquery?
Ответы
Ответ 1
Предложенный вариант с storage работает только на одной и той де странице, то есть если открыть в нескольких табах page-1.php то предложенный вариант с window.addEventListener('storage', e => console.info('Changed')) сработает, иначе предлагаю сделать след. образом, как из ответа https://ru.stackoverflow.com/a/729727/243667 page-1.php var storageParam = "name"; var defaultStorageVal = localStorage.getItem(storageParam); setInterval(function() { var val = localStorage.getItem(storageParam); if (val != defaultStorageVal) { document.getElementById("test-1").innerHTML=val; defaultStorageVal = val; // если alert один раз только должен сработать, убейте интервал } }, 500); // тут уже сами смотрите page-2.php localStorage.setItem("name", "text")Ответ 2
Используйте событие storage: Page 1: window.addEventListener('storage', e => console.info('Changed')) Page 2: localStorage.setItem('name', 42) При изменении хранилища, на всех вкладаках с этим хранилищем произойдёт событие, где можно проверить имя и изменить текст. Важно: Обратите внимание на то, что изменение (и, соответственно, событие) произойдёт только при... изменении данных. Т. е. если в name уже лежало значение 42, то установка name = 42 не приведёт к генерации события.
Комментариев нет:
Отправить комментарий