Да, можно проверить, произошло ли событие `window.onload` на момент выполнения вашего скрипта, и выполнить функцию без добавления слушателя, если оно уже произошло. Для этого можно использовать свойство `document.readyState`.
Вот пример, как это можно сделать:
```javascript
function myFunction() {
// Ваша логика здесь
console.log('Событие load уже произошло или происходит.');
}
if (document.readyState === 'complete') {
// Если состояние документа уже 'complete', значит событие load произошло
myFunction();
} else {
// Если событие load еще не произошло, добавляем слушатель
window.addEventListener('load', myFunction);
}
```
В этом коде мы проверяем значение `document.readyState`. Если оно равно `'complete'`, значит событие `load` уже произошло, и функция `myFunction()` будет вызвана немедленно. Если же оно ещё не произошло, мы добавляем слушатель на событие `load`, чтобы функция была вызвана после его наступления.
Такой подход позволяет избежать создания собственного флага и делает код более читаемым.