我想在加载时提交表单,而不是等待页面满载(这需要很长时间)。 这是我的代码,它不好,我知道......但我想不出别的什么。
var element = document.getElementsByName("redirect");
while(!element) {
element = document.getElementsByName("redirect");
};
element[0].form.submit();
有没有更好的方法来检测是否已加载此表单元素?
答案 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(){}
。