为什么这个setTimeout不起作用

Gil*_*les 4 javascript

我刚刚进入Java.我正在编写一个简单的脚本来打开一个窗口,然后在短暂的延迟后关闭它.我尝试了以下各种内涵,但无济于事.该功能有效(因为它打开,然后关闭窗口),但延迟不会发生.

function manualWindow(){
testWindow = window.open("popup.php","interaction","resizable=0,width=800,height=600,status=0");
setTimeout(testWindow.close(),5000);
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Ric*_*ton 19

你要:

setTimeout(function() { testWindow.close(); },5000);
Run Code Online (Sandbox Code Playgroud)

您当前的代码在命中后立即执行该函数,然后在延迟后尝试运行它的返回值.通过将其包裹在功能中,它将在5秒后正确运行.

例:

<html>
<head></head>
<body>
<script type="text/javascript">
    function manualWindow(){
       testWindow = window.open("http://www.google.co.uk","interaction","resizable=0,width=800,height=600,status=0");
       setTimeout(function() { testWindow.close() },5000);
    }

    manualWindow();
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • 是的,请你把它作为公认的答案:D (2认同)