我有这段代码:
<?php
/*
creating a database
*/
echo "<script>window.close();</script>";
?>
最后我试图关闭当前窗口,但是我有这个错误:脚本只能关闭它打开的窗口。窗口是物理打开的。你能帮我解决一下吗?
答案 0 :(得分:2)
想象两个页面,a.php
和b.php
。
b.php
在两个示例中都是相同的:
<script>window.close();</script>
此示例HTML不起作用(a.php
):
<a href="b.php">open b.php</a>
现在,这将有效(a.php
再次):
<a href="#" onclick="window.open('b.php');return false">open b.php</a>
原因。因为Javascript(应该)只能关闭它已打开的窗口。
第一个示例HTML是标准的a href
链接。没有使用Javascript。
在第二个示例中,使用Javascript打开浏览器窗口,然后可以通过Javascript关闭该窗口。
PHP是一个服务器端脚本,完全与它无关。如果从问题中删除了PHP标记,那将是最好的。
答案 1 :(得分:1)
这里很少有注意事项。使用PHP,您无法关闭用户浏览器。 PHP在服务器上运行。但是有一些javascript(正如你所使用的)因为它在用户浏览器上运行。
在JS中,您要关闭一个窗口,该窗口需要由脚本打开。要使用window.close()
,需要通过脚本打开窗口。
例如,您可以使用window.open()
创建一个窗口,并使用该处理程序也可以关闭它。
如果这是在ajax调用上,它还取决于父页面是否允许弹出。
var win;
function openWindow(){
win= window.open('www.stackoverflow.com', 'stackoverflow');
}
function closeWindow(){
win.close();
}
function close(){
window.close();
}
<button onClick='openWindow'>Open Stackoverflow</button>
<button onClick='closeWindow'>Close Stackoverflow</button>
<button onClick='close'>Close Current window</button>