2011-04-01 74 views
1

我在一個網站有很多地方需要在頁面加載時執行javascript代碼,以及當代碼周圍的區域被重新渲染時,例如 。window.onload不是由richfaces中的重新渲染觸發的?

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

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

大多數代碼是菜單,滑塊等存在於div中的初始化代碼。

我想通過將函數調用添加到window.onload 事件來處理這些代碼片段。

對於加載頁面,這工作正常,但如果我重新渲染的區域,window.onload事件沒有觸發... 我試過這在不同的瀏覽器,沒有成功。

我不能從導致重新呈現,因爲它們是所有的地方的元素中使用的onComplete,他們真的不應該知道的執行元件。

任何想法如何解決這個問題?

+0

,在window.onload將不火,看http://stackoverflow.com/questions/1694338/window -onload-equivalent-for-ajax-applications – Adam 2011-04-01 20:40:33

+0

hm,任何想法如何通過重新觸發事件(不使用oncomplete)?我似乎無法找出一種方法來找出代碼是否重新排列或正常加載.... – JohnSmith 2011-04-03 11:30:28

回答

0

doh!我遇到的問題是我加載了javascript asynchron (忘了它,它是在幾年前建立的),並導致FF4中的JavaScript錯誤,當它嘗試調用不存在的函數時,因此我開始嘗試獲取它使用window.onload。

我只是加載外部JavaScript的正常,如果您的網頁使用Ajax調用更新一切正常

1

JQuery有一個很好的解決方案,但我不確定你只是想爲此加載JQuery。

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

+0

感謝您的評論,將是最簡單的,但不幸的是,我們不能在這個項目中使用jQuery(不是我決定做.. ) – JohnSmith 2011-04-03 11:28:16

相關問題