2017-09-21 33 views
2

我使用window.open(url, target)在新标签页/窗口中打开url。在这之前,我在新打开的窗口对象上设置了一些属性,目的是将数据从这个页面(新窗口的创建者)传递到新创建的窗口。窗口对象没有创建它的页面附加的属性

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

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

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

Page1.html

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

     newWindow.property1 = value1; 
     newWindow.property2 = value2; 
    } 
</script> 

Page2.html

<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> 
+0

相关:https://stackoverflow.com/questions/2614520/call-a-javascript-功能跨浏览器选项卡 – Ivar

+0

没有要测试的IE,当您等待'newWindow.onload'事件或者即使您等待2秒钟时也会发生同样的情况吗?你能够从主窗口访问'newWindow'的属性吗? – Kaiido

回答

0

使用window.openerSharedWorkerpostMessagestorage事件

Page1.html

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

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

Page2.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> 

plnkr http://plnkr.co/edit/Gy5FFhvobFoBAbc8UnBY?p=preview

又见How can I load a shared web worker with a user-script?Can the mechanism that loads the worker in Shared Web Workers be modified?

相关问题