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('<%= i %>')"
不工作?
是的,添加onload功能后,第一个产品列表仍然没有加载数据。它显示空白屏幕。但是当我们单击同一页面上的其他产品列表并返回(通过单击)第一个产品时。它正在加载数据。
实际上onload
事件永远不会在td
标签上触发,您可以为它们定义onload的标签是:<body>, <frame>, <frameset>, <iframe>, <img>, <input type="image">, <link>, <script> and <style>
。
好的,我必须在第一个索引元素上调用 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?
构建数据库、codeigniter 模型和 javascript 调用以优化速度和效率
如何使用 AngularJS 从外部 URL 获取 JSON 并在页面中显示 - 资源解释为脚本但使用 MIME 类型 text/html 传输