【发布时间】:2017-09-21 07:31:50
【问题描述】:
我使用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>
【问题讨论】:
-
没有要测试的 IE,当您等待
newWindow.onload事件或即使您等待 2 秒时也会发生同样的情况吗?你能从主属性访问newWindow的属性吗?
标签: javascript internet-explorer internet-explorer-11