Как задержать событие onLoad, которое запускается в браузере?

#javascript #jquery #yui

#javascript #jquery #yui

Вопрос:

Я пытаюсь задержать событие onLoad, которое запускается. Есть ли способ отложить это событие, строго используя javascript на стороне клиента?

Комментарии:

1. Веская причина для задержки фактического события onload (или других аспектов завершения загрузки окна) заключается в тестировании, на случай, если задержка существенно повлияет на другие параметры страницы. Я только что нашел этот вопрос, ищущий именно это.

2. Веская причина для задержки фактического события onload — приложения WebAssembly для поисковых систем

Ответ №1:

Если вы поставите script тег в конце body подобного:

 <body>

  ...

  <script>
    setTimeout(function(){
      //deferred onload
    }, 2000);
  </script>
</body>
  

В этом случае функция будет выполнена через 2 секунды

Как сказано в моем комментарии ниже: вы не должны полагаться на задержку. Но используйте обратный вызов для определенного события. Если это невозможно, может быть лучшим плохим решением, это использовать setInterval с функцией, которая проверяет каждые X мсек, присутствует ли то, чего вы ждете, и запускает.

Комментарии:

1. нет, это не работает. setTimeout не задерживает запуск события onload.

2. Извините, это было непонятно, больше не используйте onload событие, но замените его этим методом, чтобы задержать запуск вашего кода.

3. @Kunal вы не должны полагаться на задержку. Но используйте обратный вызов для определенного события. Если это невозможно, может быть лучшим плохим решением, это использовать setInterval с функцией, которая проверяет каждые X мсек, присутствует ли то, чего вы ждете, и запускает.

Ответ №2:

Нет причин задерживать событие onload. Может быть, вы хотите использовать window.загрузить вместо этого?

 $(window).load(function(){
    //your code here
});
  

Комментарии:

1. я хочу отложить событие onload.

2. В чем причина задержки события onLoad? Мне кажется, что было бы лучше дождаться onload, а затем отложить ваш код. Здесь я чего-то не понимаю.