加载页面后的 HTML 内部重定向



我是HTML新手,我有这个加载器代码,我从:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_loader5

我将其调整为具有一个按钮,当我单击此按钮时,它会向我的代码/clients发送内部GET请求。 我希望相同的代码工作但没有按钮。

我希望加载器完成加载,然后重定向到/clients页面,因为现在它取决于按钮单击。 我的代码:

</head>
<body onload="myFunction()" style="margin:0;">
</body>
<div id="loader"></div>
<div style="display:none;" id="myDiv" class="animate-bottom">
<h2>Pres OK.</h2>
<form method="get" action="/clients">
<button>OK</button>
</form>
</body>
</div>

简单地删除按钮行没有任何作用,只是显示空白页,在我的代码中我看到 它不会重定向到/clients

我该怎么做?

编辑:

通过像@Bert Maurau一样更改myFunction来解决 建议

<script>
var myVar;
function myFunction() {
myVar = setTimeout(function(){ window.location.href = '/clients' }, 1000);
}

所以如果你的"加载"完成,你基本上想重定向用户? 我看到您在页面加载时调用myFunction()

您可以添加基本

setTimeout(function(){ window.location.href = '/clients' }, 1000);

在函数结束时,在一秒钟后将用户重定向到/client。 (或者当您的加载函数完成数据处理时。

myFunction() {
// do stuff here
// ...
// wait for a second
const timeout = setTimeout(() => {
// redirect to clients
window.location.href = '/clients';
}, 1000);
}

您可以从 myFunction(( 提交表单。

<script>
function myFunction() {
document.getElementById("form_id").submit();
}
</script>

此函数将在页面加载完成后调用,并在没有人按下按钮的情况下提交表单。您甚至可以完全删除该按钮。

解决方案:

</head>
<body onload="myFunction()" style="margin:0;">

删除 BODY 的额外结束标记

<div id="loader"></div>
<div style="display:none;" id="myDiv" class="animate-bottom">
<h2>Pres OK.</h2>
<form method="get" action="/clients">
<button>OK</button>
</form>
</body>
</div>

您可以使用下面的 Jquery 脚本

<script>
$(document).ready(function(){
if($('#loader').hasClass('d-none') || $('#loader').css('display') == 'none'){ 
// or any other check to ensure that the loader is finished.
$('form').submit();
}
})
</script>

如果您需要更多说明,请随时询问。

最新更新