Подтвердить что ты не робот

Javascript перед загрузкой?

Есть ли какой-либо обработчик событий перед onLoad/onPageShow? Проблема с onLoad - если есть какие-либо изменения в отображении, страница будет отображаться без изменений, пока она не будет полностью загружена, тогда запустится script. Каков наилучший способ убедиться, что он будет запущен как можно скорее?

4b9b3361

Ответ 1

Если вы помещаете в тег <script> инструкции Javascript (а не определения функций), они будут выполняться во время загрузки страницы - перед запуском события onLoad.

 <html>
 <body>
   <h2>First header</h2>
   <script type="text/javascript">
     alert("Hi, I am here"); 
     document.write("<h3>This is Javascript generated</h3>");
   </script>
   <h2>Second header</h2>
 </body>
 </html>

Предостережение заключается в том, что вы не можете искать элементы по идентификатору, потому что этот элемент еще не был отображен, поэтому ваша способность изменять страницу таким образом ограничена.

Нижняя строка: возможно, не рекомендуется.

То, что я обычно делаю в таких ситуациях, выглядит следующим образом:

  • Сделайте части страницы, которые могут стать невидимыми (через style="visibility:hidden;");
  • Сделайте onLoad запустите код Javascript, который изменяет страницу, а затем устанавливает видимость указанных частей на visibility:visible.

Ответ 2

Простым ответом является посылка вызова функции после элемента DOM внутри тегов script внутри тела вашей страницы. У меня была эта проблема с использованием функции javascript для стилизации ссылок в меню навигации, однако у меня был элемент карты google, который заставлял страницу загружаться медленно. На этой странице paticular я запустил script сразу после ссылки. Это решение, может быть, не самое лучшее, но оно работает. Надеюсь, это поможет.