WhiteHatqq
@WhiteHatqq

Как перезаписать переменную для добавления через InnerHTML?

var block_profile = `
<div class="main-block" id="block_profile">
    <div class="div-block-50">
        <h2 class="h2">${localStorage.getItem("username")}</h2>
        <div class="div-block-51"><a href="#" class="tags cab exit w-button">Выйти&nbsp;везде</a><a href="#" class="tags cab exit w-button">Выйти </a></div>
    </div>
</div>
`;

Есть код, при загрузке страницы он отображает на ней содержимое из локального хранилища, как можно перезагрузить эту переменную чтобы она приняла на себя новое значение из локального хранилища.

Добавляю на страницу через
app.innerHTML = block_profile;

Можно конечно при загрузке страницы обновлять разово, а потом каждый раз уже на загруженной странице искать div и менять содержимое, или просто тупо перезаписать ее в коде продублировав содержимое, но это очень не удобно, может есть способ проще?
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
Для того чтобы обновить содержимое переменной и отобразить его на странице с учетом новых значений из локального хранилища без необходимости полностью дублировать код, можно использовать функцию. Создайте функцию, которая будет генерировать HTML-структуру с актуальным значением из локального хранилища и присваивать этот HTML элементу на странице.

Вот пример того, как можно реализовать такую функцию:
function updateProfile() {
    var username = localStorage.getItem("username") || 'Неизвестный пользователь';
    var block_profile = `
    <div class="main-block" id="block_profile">
        <div class="div-block-50">
            <h2 class="h2">${username}</h2>
            <div class="div-block-51"><a href="#" class="tags cab exit w-button">Выйти&nbsp;везде</a><a href="#" class="tags cab exit w-button">Выйти </a></div>
        </div>
    </div>
    `;
    
    // Предполагая, что у вас есть элемент с id="app" на странице
    document.getElementById('app').innerHTML = block_profile;
}

// Вызовите эту функцию для инициализации при загрузке страницы
updateProfile();

// И также можете вызвать эту функцию каждый раз, когда нужно обновить информацию на странице
// Например, после изменения значения в localStorage
localStorage.setItem("username", "Новое Имя"); // Пример изменения значения
updateProfile(); // Обновляем содержимое на странице

Этот подход позволяет избежать дублирования кода и обеспечивает более чистую и управляемую структуру кода. Вместо того чтобы вручную искать и изменять конкретные элементы на странице, вы просто пересоздаете необходимый блок полностью с актуальными данными, что часто бывает быстрее и проще для понимания.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы