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
的属性?