【问题标题】:javascript function call to fetch data and display to screen on page loadjavascript函数调用以获取数据并在页面加载时显示到屏幕
【发布时间】:2022-01-11 16:55:20
【问题描述】:

我正在尝试调用 javascript 函数从数据库中获取数据。当页面加载 其他产品应获取点击事件的数据。但只有 onclick 我正在获取数据,当页面第一次加载时它是空白页面。 请指导我。请在下面找到我的代码。 java和jsp页面

<% for(int i=0;i<vProductLine.size();i++){
   if(i == 0) { %>              
<%--                    <td id="onglet<%= i %>" class="<% if(nOnglet.equals(""+i)) out.print("ongletActif"); else out.print("ongletInactif"); %>" onload="displayOnglet('<%= i %>')">  --%>
<td id="onglet<%= i %>" class="<% if(nOnglet.equals(""+i)) out.print("ongletActif"); else out.print("ongletInactif"); %>" onload="displayOnglet('<%= i %>')">
                        <table border="0" cellpadding="0" cellspacing="0">
                            <tr><td nowrap align="center"><b><j2ee:text id="xmlFile" tag="<%= vProductLine.elementAt(i).toString() %>"/></b></td></tr>
                            <tr><td align="center"><span id="obj_<%= vProductLine.elementAt(i) %>"></span></td></tr>
                        </table>
                    </td>
<% }else{ %>
                    <td id="onglet<%= i %>" class="<% if(nOnglet.equals(""+i)) out.print("ongletActif"); else out.print("ongletInactif"); %>" onclick="displayOnglet('<%= i %>')">
                        <table border="0" cellpadding="0" cellspacing="0">
                            <tr><td nowrap align="center"><b><j2ee:text id="xmlFile" tag="<%= vProductLine.elementAt(i).toString() %>"/></b></td></tr>
                            <tr><td align="center"><span id="obj_<%= vProductLine.elementAt(i) %>"></span></td></tr>
                        </table>
                    </td>
<% }} %>

【问题讨论】:

  • 你的意思是onload="displayOnglet('&lt;%= i %&gt;')" 不工作?
  • 是的,添加onload功能后,第一个产品列表仍然没有加载数据。它显示空白屏幕。但是当我们单击同一页面上的其他产品列表并返回(通过单击)第一个产品时。它正在加载数据。
  • 实际上onload事件永远不会在td标签上触发,您可以为它们定义onload的标签是:&lt;body&gt;, &lt;frame&gt;, &lt;frameset&gt;, &lt;iframe&gt;, &lt;img&gt;, &lt;input type="image"&gt;, &lt;link&gt;, &lt;script&gt; and &lt;style&gt;
  • 好的,我必须在第一个索引元素上调用 onload 函数,在这种情况下我应该使用什么。因为 body 标记已用于我页面中的另一个 onload 功能。
  • 你说的是什么意思,因为我的页面中的另一个onload功能已经使用了body标签。?您可以在 body onload 中定义多个操作,例如:function f1(){ // do something}; function f2(){ // do something}; document.body.onload= function(){ f1(); f2(); } 这种方法无法解决您的问题?

标签: javascript java html jsp


【解决方案1】:

如果评论中的解决方案不能帮助解决你的问题,另一种解决方案是在脚本中放置一个脚本标签并调用你的函数,如下所示:

<% for(int i=0;i<vProductLine.size();i++){
if(i == 0) { %>              
<td id="onglet<%= i %>" ...>
  <table border="0" cellpadding="0" cellspacing="0">
     <tr><td nowrap align="center">...</td></tr>
     <tr><td align="center">...</td></tr>
   </table>
 </td>
<script>
   displayOnglet('<%= i %>'); //or wathever you want to do on td's onlaod
</script>
<% }... %> 

【讨论】:

    猜你喜欢
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2012-08-30
    相关资源
    最近更新 更多