使用下面的代码,我可以让网页自动正确提交表单。我试图弄清楚如何让脚本延迟5秒,然后关闭窗口而不询问用户是否希望窗口关闭。
此页面将在我们公司内部用于推出供应商提供的产品。因为它将在我们的网络中,所以对于使用它的人来说,窗口很可能是IE。
5秒钟后我无法让脚本关闭窗口。我试图在不使用jQuery的情况下完成此任务。这就是我到目前为止所拥有的。
<html>
<body>
<br/>
<h3>Launching GE Web Viewer ... Please Wait</h3>
<br/>
<form id="frmLaunchViewer" method="POST" action="https://geview.abc.org/startwebviewer.jnlp">
<input type="hidden" name="user" value="MyUserName">
<input type="hidden" name="password" value="MyPassword">
<script>
document.getElementById('frmLaunchViewer').submit();
window.setTimeout(CloseMe, 500);
</script>
<script>
function CloseMe()
{
window.close();
}
</script>
</form>
</body>
答案 0 :(得分:0)
正如Evan Knowles所说,如果你提交一份表格,那就刷新了这个页面。您应该使用ajax发布表单:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
if(xmlhttp.status == 200){
window.close();
}
}
}
xmlhttp.open("POST", "https://geview.abc.org/startwebviewer.jnlp", true);
xmlhttp.send(new FormData(document.getElementById("frmLaunchViewer")));
等待5秒是没用的,除非sendig表格的数据需要5秒钟。使用ajax回调比使用5秒足以完成该过程更好。如果您确实需要,请参阅blex的评论。
答案 1 :(得分:0)
试试这个 -
<script>
document.getElementById('frmLaunchViewer').submit();
window.setTimeout(CloseMe, 5000);
</script>
<script>
function CloseMe()
{
close();
}
</script>
请检查这些 -