Есть ли какой-либо обработчик событий перед onLoad/onPageShow? Проблема с onLoad - если есть какие-либо изменения в отображении, страница будет отображаться без изменений, пока она не будет полностью загружена, тогда запустится script. Каков наилучший способ убедиться, что он будет запущен как можно скорее?
Javascript перед загрузкой?
Ответ 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 сразу после ссылки. Это решение, может быть, не самое лучшее, но оно работает. Надеюсь, это поможет.