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

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

14 голосов
/ 21 августа 2011

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

Ответы [ 2 ]

24 голосов
/ 21 августа 2011

Если вы поместите операторы Javascript (а не определения функций) внутри тега <script>, они будут выполняться во время загрузки страницы - до того, как будет запущено событие 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.
0 голосов
/ 17 декабря 2015

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

...