我的404页面上有一个表单,其中自动填充了用户试图找到的地址。我也有javascript,然后自动提交该表单。
问题是,一旦它自动提交它就会保持循环并且页面不断重新加载。
我正在尝试将javascript代码发送一次,然后停止。 该脚本在页面加载时触发,以便最终导致循环。
结果:我需要它在页面加载,页面重新加载时触发,代码检查它是否已经重新加载一次然后停止。
对于我的测试,我试图让它弹出一个警告,上面写着“我重新载入一次”只是因为我知道它有效。
这是我目前的代码
<script type="text/javascript">
window.onload = function() {
var grabedurl = window.location.href
document.getElementById('badurl').value=grabedurl;
if( history.previous != history.current ){alert('I reloaded once')}
else
setTimeout("document.getElementById('errorsubmit').click()", 3000);}
</script>
答案 0 :(得分:1)
您可以做的是将已经重新加载的页面的状态添加到URL的查询字符串部分。这应该在您form
的{{1}}中完成,例如action
action="?submitted"
但是,您可能需要考虑其他方法 - 例如通过XMLHttpRequest提交表单;使用另一个单独的window.onload = function()
{
var form = document.getElementById("aspnetForm");
form.setAttribute("action", form.getAttribute("action") + "&submitted");
var grabedurl = window.location.href;
document.getElementById('badurl').value = grabedurl;
if (/submitted/.test(window.location.search.substring(1)))
{
alert('I reloaded once');
}
else
{
setTimeout("document.getElementById('errorsubmit').click()", 3000);
}
}
页面将表单提交给服务器或让服务器记录请求。