如何在javascript中等待页面加载?

如何在javascript中等待页面加载?,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我目前正在开发一个Chrome扩展,可以自动向服务器提交表单。我知道页面上有一个函数可以让我提交表单。我使用Chrome控制台进行了测试,确保它正常工作,但出现了一个问题。Javascript函数在定义之前执行,导致出现UnknownReferenceError,表单无法提交 我尝试使用jQuery的on(“load”)和setTimeout函数,但两者都不能正常工作。jQuery不会记录消息 $(window).on("load", function() { setTimeout(subm

我目前正在开发一个Chrome扩展,可以自动向服务器提交表单。我知道页面上有一个函数可以让我提交表单。我使用Chrome控制台进行了测试,确保它正常工作,但出现了一个问题。Javascript函数在定义之前执行,导致出现
UnknownReferenceError
,表单无法提交

我尝试使用jQuery的
on(“load”)
setTimeout
函数,但两者都不能正常工作。jQuery不会记录消息

$(window).on("load", function() {
  setTimeout(submit()),10000);
  console.log("submitted the form successfully");
})
window.onload=function(){alert(“页面已加载”)}
window.onload=function(){alert(“页面已加载”)}

setTimeout的第一个参数是函数,而不是调用函数的结果
submit()
立即调用函数-因此提交代码立即运行,通常会导致加载新页面(提交表单的结果)。我认为您可以选择根元素并检查它是否已加载,然后像这样调用必要的函数<代码>文档.getElementById(“IDOFrooteElement”).onload=function(){myFunction()};函数myFunction(){//Do something}可能会起作用。要访问页面定义的JavaScript函数,您需要。此外,您不需要jQuery,只需执行window.addEventListener('load',()=>{…})即可,但这可能是不必要的,所以请先尝试不使用它。谢谢@wOxxOm您回答了我的问题!setTimeout的第一个参数是一个函数,而不是调用函数的结果
submit()
立即调用函数-因此提交代码立即运行,通常会导致加载新页面(提交表单的结果)。我认为您可以选择根元素并检查它是否已加载,然后像这样调用必要的函数<代码>文档.getElementById(“IDOFrooteElement”).onload=function(){myFunction()};函数myFunction(){//Do something}可能会起作用。要访问页面定义的JavaScript函数,您需要。此外,您不需要jQuery,只需执行window.addEventListener('load',()=>{…})即可,但这可能是不必要的,所以请先尝试不使用它。谢谢@wOxxOm您回答了我的问题!