2013-06-26 49 views
0

javascipt函數運行的順序是什麼。每個瀏覽器做別的事情 例如我有這樣的代碼:JSF <trh:script>渲染和運行命令

<h:panelGrid id="panel" columns="2" border="1" cellpadding="0" cellspacing="2"> 
    <f:facet name="header"> 
     <h:outputText value="#{messages.signInMessage}"/> 
    </f:facet> 
    <h:outputLabel for="username" value="#{messages.usernameLabel}" /> 
</h:panelGrid> 
<trh:script> 
     // do some logic 
     // alert("end!"); 
</trh:script> 

我想,該腳本將始終運行後的面板完全呈現,所以我可以把他的寬度,例如,用這種東西做的JavaScript功能。

此工作正常,除IE 8以外的所有瀏覽器8 該腳本在面板完全呈現前運行。

任何一個能幫助我理解這個問題,什麼是正確的順序 更genreal是什麼瀏覽器之間的區別:IE,鉻,FF等。

回答

1

我只想用jQuery

<tr:document> 
    <trh:script source="jquery.js"></trh:script> 
    <trh:script source="your_script.js"></trh:script> 
    ... 
</tr:document> 

然後,您可以只在頁面加載(.ready)執行腳本:

$(document).ready(function(){ 
    // Your stuff here 
}); 

如果使用AJ斧頭(Trinidad Partial Page Rendering),您可能需要在Javascript中添加state change listener。例如:

TrPage.getInstance().getRequestQueue().addStateChangeListener(function(state){ 
    if (state == TrRequestQueue.STATE_READY){ 
    // Your stuff here 
    } 
});