Javascript 窗口对象没有创建它的页面附加的属性

Javascript 窗口对象没有创建它的页面附加的属性,javascript,internet-explorer,internet-explorer-11,Javascript,Internet Explorer,Internet Explorer 11,我使用窗口。open(url,target)在新选项卡/窗口中打开url。在此之前,我在新打开的窗口对象上设置了一些属性,目的是将数据从这个页面(新窗口的创建者)传递到新创建的窗口 在除Internet Explorer之外的所有浏览器中,代码都可以正常工作。新创建的页面能够从表示其窗口的全局窗口对象读回属性 但是,仅在Internet Explorer 11中,新创建窗口中的窗口对象没有上一页传入的属性 下面是演示该问题的示例代码 Page1.html <script type="tex

我使用
窗口。open(url,target)
在新选项卡/窗口中打开
url
。在此之前,我在新打开的窗口对象上设置了一些属性,目的是将数据从这个页面(新窗口的创建者)传递到新创建的窗口

在除Internet Explorer之外的所有浏览器中,代码都可以正常工作。新创建的页面能够从表示其窗口的全局
窗口
对象读回属性

但是,仅在Internet Explorer 11中,新创建窗口中的
窗口
对象没有上一页传入的属性

下面是演示该问题的示例代码

Page1.html

<script type="text/javascript">
    function openNewPage(value1, value2)
    {
        var newWindow = window.open('Page2.html', '_blank')

        newWindow.property1 = value1;
        newWindow.property2 = value2;
    }
</script>
<body onload = "bodyLoadHandler()">
    <script type="text/javascript">
        function bodyLoadHandler() {

            // Both of these returned undefined
            // whether referenced explicitly
            // as window.property1 or as 
            // this.property1. I prefer the explicit
            // window.property1 way because of the screwed up
            // this pointer and its ensuing issues in JavaScript.

            // This happens only
            // in IE. The code runs fine in other browsers.
            var property1 = window.property1;
            var property2 = window.property2;
        }
    </script>
</body>

函数openNewPage(值1、值2)
{
var newWindow=window.open('Page2.html','u blank')
newWindow.property1=值1;
newWindow.property2=value2;
}
Page2.html

<script type="text/javascript">
    function openNewPage(value1, value2)
    {
        var newWindow = window.open('Page2.html', '_blank')

        newWindow.property1 = value1;
        newWindow.property2 = value2;
    }
</script>
<body onload = "bodyLoadHandler()">
    <script type="text/javascript">
        function bodyLoadHandler() {

            // Both of these returned undefined
            // whether referenced explicitly
            // as window.property1 or as 
            // this.property1. I prefer the explicit
            // window.property1 way because of the screwed up
            // this pointer and its ensuing issues in JavaScript.

            // This happens only
            // in IE. The code runs fine in other browsers.
            var property1 = window.property1;
            var property2 = window.property2;
        }
    </script>
</body>

函数bodyLoadHandler(){
//这两个函数都返回未定义的值
//是否显式引用
//作为window.property1或作为
//1.我更喜欢显式的
//窗户。因为窗户坏了
//此指针及其在JavaScript中的后续问题。
//这种情况只会发生
//在IE中,代码在其他浏览器中运行良好。
var property1=window.property1;
var property2=window.property2;
}

使用
窗口开启器
共享工作人员
后消息
存储
事件

页面1.html

<script>
  function openNewPage(value1, value2) {
    var newWindow = window.open('Page2.html', '_blank')

    this.property1 = value1;
    this.property2 = value2;
  }
  openNewPage(1, 2)
</script>

函数openNewPage(值1、值2){
var newWindow=window.open('Page2.html','u blank')
此参数。属性1=值1;
此参数。属性2=值2;
}
openNewPage(1,2)
页面2.html

<body onload="bodyLoadHandler()">
  <script type="text/javascript">
    function bodyLoadHandler() {
      var property1 = window.opener.property1;
      var property2 = window.opener.property2;
      console.log(property1, property2);
    }
  </script>
</body>

函数bodyLoadHandler(){
var property1=window.opener.property1;
var property2=window.opener.property2;
console.log(property1,property2);
}
plnkr


另请参见,

相关:无需测试IE,当您等待
newWindow.onload
事件时,或者即使您等待2秒,是否也会发生同样的情况?您能否从主窗口访问
newWindow
的属性?