【问题标题】:JSF <trh:script>rendering and running orderJSF <trh:script>渲染和运行顺序
【发布时间】:2013-06-23 19:31:35
【问题描述】:

javascipt 函数的运行顺序是什么。每个浏览器都做其他事情 例如我有这个代码:

  <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 之外的所有浏览器 该脚本在面板完全呈现之前运行。

任何人都可以帮助我理解这个问题,正确的顺序是什么 在更流派的浏览器之间有什么区别:IE,Chrome,FF等。

【问题讨论】:

    标签: java html jsf cross-browser trinidad


    【解决方案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
    });
    

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      相关资源
      最近更新 更多