【问题标题】:how to close window after php has been finished? [duplicate]php完成后如何关闭窗口? [复制]
【发布时间】:2016-10-12 21:31:46
【问题描述】:

我有这个代码:

 <?php
    /*
      creating a database
    */
    echo "<script>window.close();</script>";
?>

最后我试图关闭当前窗口,但我有这个错误:脚本可能只关闭它打开的窗口。窗口是物理打开的。你能帮我解决一下吗?

【问题讨论】:

  • 你是通过 ajax 调用这个吗?还是实际运行此页面?
  • 我正在实际运行此页面。
  • 我知道错误是什么意思,但如果是物理打开的窗口,我不知道如何关闭它
  • 您能尽快回复我吗?有这么多的信息.​​.....我不完全理解

标签: javascript


【解决方案1】:

想象两个页面,a.phpb.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 标记将是最好的。

【讨论】:

  • 谢谢!可惜没有其他方法可以关闭窗口
【解决方案2】:

这里有几件事需要注意。使用 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> 

【讨论】:

    猜你喜欢
    • 2018-06-29
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    相关资源
    最近更新 更多