Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自动提交表单,5秒后关闭窗口,无提示_Javascript_Html - Fatal编程技术网

Javascript 自动提交表单,5秒后关闭窗口,无提示

Javascript 自动提交表单,5秒后关闭窗口,无提示,javascript,html,Javascript,Html,使用下面的代码,我可以让网页自动正确提交表单。我试图弄清楚如何让脚本延迟5秒,然后关闭窗口,而不询问用户是否希望关闭窗口 本页面将用于我们公司内部发布由供应商提供的产品。因为它将在我们的网络中,所以窗口很可能是IE,供任何使用它的人使用 我无法让脚本在5秒后关闭窗口。我试图在不使用jQuery的情况下实现这一点。这就是我目前所拥有的 <html> <body> <br/> <h3>Launching GE Web Viewer ... Pleas

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

正如埃文·诺尔斯(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秒钟是没有用的,除非发送表单的数据需要5秒钟。最好使用ajax回调,而不是希望5秒钟就足以完成该过程。如果您真的需要,请参阅blex的评论。

试试这个-

    <script>
        document.getElementById('frmLaunchViewer').submit();
        window.setTimeout(CloseMe, 5000);
    </script>   

    <script>
        function CloseMe() 
        {
          close();
        }
    </script>
请检查这些-


通过javascript关闭打开的页面=/=关闭浏览器,一个程序。通常不能关闭浏览器窗口,除非它是您的代码用窗口打开的窗口。打开。5秒是5000毫秒,您忘记了0。您可能想阅读以下内容:如果您正在发布表单,页面将刷新,删除所有现有计时器。设置某种变量,可能是localStorage,以指示您已提交表单,然后您可以尝试重定向-关闭可能无法工作;500不是5秒,而是半秒。