Это проблема, связанная с jQuery.jQuery использует собственный внутренний отложенный объект для представления списка «готовых» функций обратного вызова.Внутри этого отложенного объекта могут быть или не быть установлены таймауты по разным причинам, window.onload
отменяется при некоторых условиях и многое другое.jQuery делает все это для обеспечения согласованности между браузерами.Из документации jQuery:
Обратите внимание, что хотя DOM всегда становится готовым до полной загрузки страницы, обычно небезопасно прикреплять прослушиватель события загрузки в коде, выполняемом во время обработчика .ready ().,Например, сценарии могут быть загружены динамически после загрузки страницы с помощью таких методов, как $ .getScript ().Хотя обработчики, добавленные с помощью .ready (), всегда будут выполняться в динамически загружаемом скрипте, событие загрузки окна уже произошло, и эти слушатели никогда не запустятся.
Ссылка
Простое решение JavaScript ниже работает, как и следовало ожидать, так как не все, что входит в реализацию jQuery того же кода:
document.addEventListener('DOMContentLoaded', () => {
google.maps.event.addDomListener(window, 'load', function() {
alert('custom event');
});
});
<script src="https://maps.googleapis.com/maps/api/js?v=3"></script>