как запустить действие при загрузке страницы / js

у меня есть event на клик, хотелось бы так же запустить эту функцию без нажатия при загружке страницы.

generate.addEventListener('click', () => {
    const length = lengthEl.value;
    const hasLower = lowercaseEl.checked;
    const hasUpper = uppercaseEl.checked;
    const hasNumber = numbersEl.checked;
    const hasSymbol = symbolsEl.checked;
    
    resultEl.value  = generatePassword(hasLower, hasUpper, hasNumber, hasSymbol, length);
});

как можно решить это ?


Ответы (1 шт):

Автор решения: yar85

При загрузке (готовности) DOM:

document.addEventListener('DOMContentLoaded', () => {
  if (document.readyState === 'complete') generate.click();
});

При полной загрузке страницы:

document.addEventListener('readystatechange', () => {
  if (document.readyState === 'complete') generate.click();
});

Конечно же, слушатель клика должен быть добавлен до того как возникнет ожидаемое событие.


Кстати, так как слушатели обычно добавляются при готовности DOM - можно сразу их и вызывать (если нужно не ждать полной загрузки страницы, а просто выполнить обработчик как можно раньше, для инициализации):

document.addEventListener('DOMContentLoaded', () => {
  /* .... */
  const onGenerateClick = () => {
    resultEl.value = generatePassword(
      lowercaseEl.checked,
      uppercaseEl.checked,
      numbersEl.checked,
      symbolsEl.checked,
      lengthEl.value
    );
  };
  generate.addEventListener('click', onGenerateClick);
  onGenerateClick();
});
→ Ссылка