自动提交表单,然后在没有提示的情况下在5秒后关闭窗口

时间:2015-08-25 21:16:36

标签: javascript html

使用下面的代码,我可以让网页自动正确提交表单。我试图弄清楚如何让脚本延迟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>

2 个答案:

答案 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>

请检查这些 -

How to close current tab in a browser window?

http://www.w3schools.com/jsref/met_win_settimeout.asp