window.onload не запускается при повторном рендеринге в Richfaces?

У меня есть много мест на веб-сайте, где я хочу, чтобы код javascript выполнялся при загрузке страницы, а также при повторном отображении области вокруг кода, например.

<div id="blah">
<script>
addLoadEvent(function (){
  submenus.init('somedata');
});

</script>
loads of other stuff here
</div>

в основном код является кодом инициализации для меню, ползунков и т. д., которые существуют в div.

Я хотел обработать эти фрагменты кода, добавив вызовы функций в событие window.onload.

Это отлично работает для загрузки страницы, НО, если я перерисовываю область, событие window.onload не запускается... Я пробовал это в разных браузерах, но безуспешно.

Я не могу использовать oncomplete от элементов, вызывающих ререндер, так как они повсюду, и они не должны толком знать о реализации компонентов.

Есть идеи, как это решить?


person JohnSmith    schedule 01.04.2011    source источник
comment
Если ваша страница обновляется с помощью вызовов ajax, window.onload не сработает, см. stackoverflow.com/questions/1694338/   -  person Adam    schedule 02.04.2011
comment
хм, есть идеи, как инициировать событие повторным рендерингом (без использования oncomplete)? я не могу найти способ узнать, был ли код перерисован или нормально загружен....   -  person JohnSmith    schedule 03.04.2011


Ответы (2)


У JQuery есть отличное решение, но я не уверен, что вы захотите загружать JQuery только для этого.

http://api.jquery.com/ready/

person Caimen    schedule 01.04.2011
comment
спасибо за комментарий, было бы проще всего, но, к сожалению, мы не можем использовать jquery в этом проекте (это не мое решение..) - person JohnSmith; 03.04.2011

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

я просто загружаю внешние javascripts нормально, и все работает нормально

person JohnSmith    schedule 04.04.2011