【问题标题】:window.closed() is true when console debugger is closed, but false when console debugger is open IE behaviourwindow.closed() 在控制台调试器关闭时为真,但在控制台调试器打开时为假 IE 行为
【发布时间】:2020-01-23 14:14:37
【问题描述】:

windowobj.closed() 总是在 IE 浏览器中关闭控制台调试器时实现。

 windowobj = window.open(
  url,
  "_blank",
  "resizable=yes,width=1024,height=630,top=0,left=0,status=1"
);

if (!windowobj.closed) {
  var timer = setInterval(checkChild, 500);
}

【问题讨论】:

  • 您使用的是window.closed()(方法)还是window.closed(属性)?由于window.closed() 不存在并且应该抛出错误。 (您可能仅在控制台打开时才能看到,说明问题)如果您使用window.closed(),请尝试将代码包装在 try/catch 中,并在 catch 子句中使用警报以查看差异。使用 if (!windowobj.closed) { 时,我无法在 IE11 中重现该问题。不管console还是open都不是。

标签: javascript php internet-explorer yii


【解决方案1】:

不管控制台是否打开,window.closed 的值似乎没有任何区别。如果你想检查窗口是否关闭,你应该像这样修改你的代码:

windowobj = window.open(
    url,
    "_blank",
    "resizable=yes,width=1024,height=630,top=0,left=0,status=1"
);

setInterval(function () {
    if (!windowobj.closed) {
        checkChild
       }
}, 500);

你也可以参考this article在IE中试试this demo,无论控制台打开还是关闭,测试结果都不会改变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多