调用特定元素加载的函数

时间:2013-07-26 23:46:22

标签: javascript

我想在加载时提交表单,而不是等待页面满载(这需要很长时间)。 这是我的代码,它不好,我知道......但我想不出别的什么。

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

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

element[0].form.submit();

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

2 个答案:

答案 0 :(得分:3)

您可以使用jQuery DOM ready(仅限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()

不是那么漂亮,但比循环更好。

答案 1 :(得分:0)

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

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

然后在某处写一个java脚本函数function submit_form(){}