javascript函数调用以获取数据并在页面加载时显示到屏幕

Posted

技术标签:

【中文标题】javascript函数调用以获取数据并在页面加载时显示到屏幕【英文标题】:javascript function call to fetch data and display to screen on page load 【发布时间】: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(); 这种方法无法解决您的问题? 【参考方案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>
<% ... %> 

【讨论】:

以上是关于javascript函数调用以获取数据并在页面加载时显示到屏幕的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose/Mongodb 数据库调用以不一致的顺序返回数据

Javascript:从字符串调用以匿名函数编写的函数,函数名称没有eval?

前端页面不需要加载url获取图片

构建数据库、codeigniter 模型和 javascript 调用以优化速度和效率

jqGrid 不填充数据

如何使用 AngularJS 从外部 URL 获取 JSON 并在页面中显示 - 资源解释为脚本但使用 MIME 类型 text/html 传输