为什么我不能在 IE11 中将全局变量设置为子窗口?

问题描述

我正在尝试实现新功能。 我能够在现代浏览器中实现我想要的,但在 IE11 中无法实现。

  if (!window.IS_PRESENTING) {
      childWindow = window.open(window.location.pathname);
      childWindow.IS_PRESENTING = true;
      setupMainWindow();
    } else {
      setupChildWindow();
    }

在现代浏览器中 IS_PRESENTING 是在子窗口上设置的。但是在 IE11 中它不起作用并且浏览器不断打开新窗口...

我该如何解决这个问题?有什么建议吗?

解决方法

我可以在 IE 11 中重现该问题。作为一种解决方法,在 IE 11 中,您可以在打开窗口中获取 window.IS_PRESENTING 的值,并根据它设置打开窗口的 IS_PRESENTING 值:

在打开的窗口中:

targetWindow = window.opener;
var IS_PRESENTING = !targetWindow.IS_PRESENTING;  //targetWindow.IS_PRESENTING can get the value of window.IS_PRESENTING in child window
alert("The value of IS_PRESENTING is " + IS_PRESENTING);

参考链接:Window.opener

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...