Как сделать чтобы скрипт выполнялся при загрузке страницы?
Есть много <input type="hidden"> и скрипт, который делает что-то очень важное ))
За скрипт спасибо Vladimir Gonchar. Но как сделать чтобы скрипт выполнялся при загрузке страницы, а не при изменении input-ов?
addEventListener('input', (e) => {
let progressEl = document.getElementsByClassName(e.target.id)[0];
if (progressEl) {
progressEl.setAttribute('aria-valuenow', e.target.value);
progressEl.style.width = `${e.target.value}`;
progressEl.innerHTML = e.target.value;
}
});
<div class="progress mb-1" style="height:0.5rem">
<input type="hidden" class="localstoragesave" id="hodba-2023-01-03" value="16603" />
<div class="progress-bar bg-success hodba-2023-01-03" role="progressbar" style="width: 0; font-size: 0.5rem;" aria-valuenow="0" aria-valuemin="0" aria-valuemax="20000" data-den="03.01.23 — ">0</div>
</div>
<div class="progress mb-1" style="height:0.5rem">
<input type="hidden" class="localstoragesave" id="hodba-2023-01-02" value="10463" />
<div class="progress-bar bg-success hodba-2023-01-02" role="progressbar" style="width: 0; font-size: 0.5rem;" aria-valuenow="0" aria-valuemin="0" aria-valuemax="20000" data-den="02.01.23 — ">0</div>
</div>
<div class="progress mb-1" style="height:0.5rem">
<input type="hidden" class="localstoragesave" id="hodba-2023-01-01" value="8589" />
<div class="progress-bar bg-success hodba-2023-01-01" role="progressbar" style="width: 0; font-size: 0.5rem;" aria-valuenow="0" aria-valuemin="0" aria-valuemax="20000" data-den="01.01.23 — ">0</div>
</div>
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Нужно использовать событие DOMContentLoaded
document.addEventListener("DOMContentLoaded", function(event) {
let progressEl = document.getElementById(СЮДА_ВПИСАТЬ_ID);
if (progressEl) {
let progressValue = progressEl.value;
progressEl.setAttribute('aria-valuenow', progressValue);
progressEl.style.width = progressValue;
progressEl.innerHTML = progressValue;
}
});
Данный код расположить после первого, который навешивает события addEventListener('input'
document.addEventListener("DOMContentLoaded", function(event) {
document.querySelectorAll('.progress input[type="hidden"]').forEach((el) => {
el.dispatchEvent(new Event('input', {bubbles:true}));
});
});