Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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 PHP在超时后自动关闭窗口_Javascript_Php_Html - Fatal编程技术网

Javascript PHP在超时后自动关闭窗口

Javascript PHP在超时后自动关闭窗口,javascript,php,html,Javascript,Php,Html,我能关上窗户。但随着超时,它似乎不起作用 该test.php由另一个窗口上的submit按钮操作调用。如果我在所有窗口关闭脚本行中都做了注释,则会显示“发送…此窗口将在发送后自动关闭” 这echo“window.close();”将关闭此窗口而不显示任何回音。其他三行,我只看到一个空白窗口,根本没有关闭。只有在Chrome上,我才出现服务器500错误。我试过Firefox、Safari和Chrome 有什么建议吗 test.php包含: <?php echo "Sending .

我能关上窗户。但随着超时,它似乎不起作用

该test.php由另一个窗口上的submit按钮操作调用。如果我在所有窗口关闭脚本行中都做了注释,则会显示“发送…此窗口将在发送后自动关闭”

echo“window.close();”将关闭此窗口而不显示任何回音。其他三行,我只看到一个空白窗口,根本没有关闭。只有在Chrome上,我才出现服务器500错误。我试过Firefox、Safari和Chrome

有什么建议吗

test.php包含:

<?php

    echo "Sending ... This window will close itself after sending.";

    echo "<script>window.close();</script>";  // this line works

//    echo "<script>setTimeout("window.close()", 5000);</script>";

//    <script type="text/javascript">setTimeout("window.close();", 3000);</script>
//    echo "<script type="text/javascript">setTimeout( function() { window.close(); }, 3000);</script>"

?>

您应该向setTimeout()传递一个函数

试试这个:

<script>setTimeout(function(){ window.close();}, 5000);</script>
我仍然建议您编写一个适当的函数,而不是字符串,但如果必须这样做,至少要转义双引号,或者如果不必解析其中的变量,则使用单引号来启动PHP常量字符串

echo 'something "quoted" something';//I prefer this

setTimeout(“window.close();”,2000);

告诉我这是否有效,当然可以将2000更改为您想要的;)

setTimeout(“window.close()”,5000)为我工作;“它似乎不起作用。”没有说明问题是什么。你指的是什么窗口?无法关闭未通过脚本打开的窗口它对我也有效,您尝试了哪种浏览器?更新了我的答案,设置超时(window.close,2000);(函数引用而不是字符串文字,并且没有基准测试昂贵的eval())
echo 'something "quoted" something';//I prefer this
echo "something \"quoted\" something";
//but this still works, altough parser will try to find variable names
<script type="text/javascript">setTimeout("window.close();", 2000);</script>