我有这个代码在页面加载时自动提交表单。但是在页面完全加载后进行提交需要20秒。
我在这做错了吗? 如果没有,如何绕过20秒延迟? 我们可以让身体onload事件更快吗?代码:
<html>
<body onload="document.forms['loginform'].submit();">
<form id="loginform" name="loginform" action="https://login.url.com" method="post" style="visibility:hidden">
<input type="hidden" value="" name="hhh">
<input type="text" value="username" id="login_field" name="username">
<input type="password" value="pass" id="password_field" name="password">
<input type="hidden" value="" id="password_strength" name="password_strength">
<input type="hidden" value="/index.php" id="sendto" name="sendto">
<button id="btn_logon" type="submit"><span>Login</span></button>
</form>
</body>
</html>
非常感谢你。
答案 0 :(得分:0)
在加载页面的所有依赖项(图像,外部资源等)之后触发load事件。您应该关注的事件是在DOM准备就绪时被触发的事件 - DOMContentLoaded
已在HTML5中标准化。
对于跨浏览器解决方案,从任何现有的JavaScript库中选择一个实现,如MooTools,jQuery,Dojo等。
此link包含一个实现。如果您的DOM内容太大,并且下载和解析只是花费时间,那么请考虑在<form>
之后立即添加脚本。
<form id="loginform" name="loginform" action=".." method="post">
...
</form>
<script>
// submits the form right after it is parsed
document.forms['loginform'].submit();
</script>