Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在页面加载时调用多个Javascript函数_Javascript_Html_Jsp - Fatal编程技术网

在页面加载时调用多个Javascript函数

在页面加载时调用多个Javascript函数,javascript,html,jsp,Javascript,Html,Jsp,我一直在尝试在页面加载时从html主体调用4个JS函数。 这些函数中的每一个都调用jspservlet从数据库中获取数据并填充到相应的列表框中。我正在编辑屏幕上工作,试图在其中预填充列表框 我正在尝试这样的东西: //call the JS to prepopulate the metadata function populateOnPageLoad(){ populateA(); populateB(); populateC

我一直在尝试在页面加载时从html主体调用4个JS函数。 这些函数中的每一个都调用jspservlet从数据库中获取数据并填充到相应的列表框中。我正在编辑屏幕上工作,试图在其中预填充列表框

我正在尝试这样的东西:

      //call the JS to prepopulate the metadata
    function populateOnPageLoad(){
        populateA(); 
        populateB();
        populateC();
        populateD();
    } 

我还尝试在body onload中直接调用所有4个函数。 似乎它只能调用populateD()并在列表框中显示数据。我已经在insert操作中测试了其中的每一个,JSP servlet工作得很好。我甚至更改了这些函数的顺序,以检查它是否只调用了最后一个函数,但它似乎不是这样工作的

这里可能存在什么问题以及可能的解决方案


谢谢

您应该查看
window.onload
而不是
document.body.onload

此外,不要设置
window.onload
使用
window.addEventListener('load',populateOnPageLoad,false)

window.addEventListener('load',populateA,false);
window.addEventListener('load',populateB,false);
window.addEventListener('load',populateC,false);
window.addEventListener('load',populateD,false);
如果您使用的是ajax,请确保您没有覆盖以前调用的
XMLHttpRequest
对象(即确保它们不共享作用域/变量名)

试试这个

function populateOnPageLoad(){
    setTimeOut(populateA(),500); 
    setTimeOut(populateB(),500);
    setTimeOut(populateC().500);
    setTimeOut(populateD(),500;
} 

加载页面时,我正在将记录id(我正在尝试编辑)传递给populateOnPageLoad()。当我这样做时,它会将上一条记录中的相关数据填充到相应的列表框中

是否可以添加更多代码。。?像您的方法
populateA()
populateB()
…一样,这些函数放在哪里?在“onload”事件处理程序中,您是否能够检查网络活动,以查看是否每个函数都发出了每个ajax请求?为什么要在页面加载时执行ajax调用?在几乎所有情况下,您都应该能够在页面上直接填充数据,而不是进行ajax调用。Reimius,我正在从下拉列表中选择一个值,我正在进行ajax调用,以填充插入操作中的4个列表框。但是在我的编辑操作中,我预先选择了下拉值,因此没有事件填充列表框。我正在尝试使用相同的AJAX调用填充数据。Sshac,我是否应该在js函数中添加window.addeventlistener(),然后从页面加载中调用它?我正在使用Ajax填充列表框。在插入操作中,我通过下拉更改事件进行处理。但在编辑操作中,当下拉LOD时,我不会第一次看到事件,因为它具有来自insert的预选值。我自己能够解决这个问题,但花了很长时间才找到解决方案。加载页面时,我正在将记录id(我正在尝试编辑)传递给populateOnPageLoad()。当我这样做时,它会将上一条记录中的相关数据填充到相应的列表框中。