【问题标题】:javascript window.close() works in one case but doesnt in anotherjavascript window.close() 在一种情况下有效,但在另一种情况下无效
【发布时间】:2010-01-28 10:46:39
【问题描述】:

在这两种情况下,我都试图使用类似的代码关闭从同一个父级打开的弹出窗口。在这两种情况下,该函数都在 jquery $.post 方法的回调函数中被调用。但是当其中一个正常工作时,另一个会抛出错误

火狐:

window.close 不是函数

铬:

对象 [object DOMWindow] 的属性“关闭”不是函数

我尝试用两个具有最少代码的简单 html 文件单独执行此操作 .. 它运行良好

这是我用来打开弹出窗口的代码

<a onclick="window.open('<?php echo $personalize_href; ?>',null,'height=688,width=1000,status=no,toolbar=no,menubar=no,scrollbars=2,location=no');">

请帮忙

【问题讨论】:

  • 你能显示你用来打开窗口的代码吗?两个 URL 是否在同一个域中?
  • 是的,尝试这样做.. 有人能告诉我如何在此处发布 javascript 代码
  • 发布并使用“代码”按钮(带有 00101010 的那个)标记它
  • 您的问题令人困惑。当您试图关闭窗口时,您在哪里?在窗户里?在父级中?

标签: javascript html


【解决方案1】:

您需要保留窗口的句柄(或回收窗口的句柄...)

var myWin = window.open(uri, "myWin", "height=300, width=200");

...

myWin.close();

【讨论】:

  • +1,这是与在新窗口中拨打电话相反的另一种方式。
  • 谢谢,但这也不起作用.. 错误
    myWin 未定义
【解决方案2】:

你可以试试self,而不是window

self 引用当前窗口,而window 引用父窗口。

self 实际上是一个DOMWindow 对象。

【讨论】:

    【解决方案3】:

    谢谢佩卡..

    这就是我调用 window.open 的方式

    <a onclick="window.open('<?php echo $personalize_href; ?>',null,'height=688,width=1000,status=no,toolbar=no,menubar=no,scrollbars=2,location=no');" class="button">
    

    我的意思是两种不同的情况,有一个带有两个链接的父窗口,它们打开两个不同的弹出窗口..一个使用 window.close 关闭,另一个没有 在这两种情况下,我都从弹出窗口调用 window.close 函数..以及其他一些代码 这是这个

    window.close();
            if (window.opener && !window.opener.closed) {
            window.opener.location.href = 'xyz';
            }
    

    【讨论】:

      猜你喜欢
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 1970-01-01
      • 2018-09-15
      相关资源
      最近更新 更多