java - JSF <trh :script>rendering and running order

标签 java html jsf cross-browser trinidad

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 等。

最佳答案

我只会使用 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 ),您可能需要添加 state change listener在你的 JavaScript 中。例如:

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

关于java - JSF <trh :script>rendering and running order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17323821/

相关文章:

JSF 中的 Javascript - 没有库、没有名称和正文内容的 outputScript

jquery - Primefaces 是否能够从另一个域获取 jquery?

java - 当我调用 Jenkins json api 时,如何判断构建是否正在进行?

java - 为什么 "java.lang.OutOfMemoryError: Java heap space"没有被抓到?

java - Swing 中的输入验证

javascript - jQuery水平滑动选项卡机制

Java "sun.security.validator.ValidatorException: PKIX path building failed"证书验证错误

javascript - Angularjs 没有可视化输入选择中的第一个选项

javascript - CSS - 对齐动态创建的下拉框

java - Internet Explorer 想要下载 GuessNumber 示例应用程序的网页而不是显示它