0

我想在加载表单时提交表单,而不是等待页面完全加载(这需要很长时间)。这是我的代码,它不好,我知道......但我想不出其他任何东西。

var element = document.getElementsByName("redirect");

while(!element) {
    element = document.getElementsByName("redirect");
};

element[0].form.submit();

是否有更好的方法来检测此表单元素是否已加载?

4

2 回答 2

3

您可以使用 jQuery DOM 就绪(仅 DOM,不等待加载图像和其他资源):

$(function(){
  var element = document.getElementsByName("redirect");
  element[0].form.submit();
})

或者没有 DOM 就绪事件。您可以使用递归;

function checkFormExist(){
  var element = document.getElementsByName("redirect");
  if(element[0] && element[0].form){
    element[0].form.submit();
   } else {
   setTimeout(checkFormExist, 300);//repeat check after 0.3 seconds
  }
}
checkFormExist()

不是那么漂亮,但比 while-loop 更好。

于 2013-07-26T23:49:02.483 回答
0

根据元素,您应该能够将onload属性设置为 javascript 回调。例如:

<form id="submit_me_when_i_load" onload="submit_form">
...
</form>

然后在它上面某处写一个java脚本函数,function submit_form(){}.

于 2013-07-26T23:49:21.730 回答