在没有打开新窗口的情况下,window.opener的等价物是什么?

时间:2012-11-07 20:49:10

标签: javascript

我正在使用的库通过将此脚本添加到弹出窗口来获取对主窗口的引用:     var winMain = window.opener;

此脚本允许弹出窗口从打开它的窗口访问全局变量。例如:

<select name=MonthSelector onChange="javascript:winMain.Cal.SwitchMth(this.selectedIndex);winMain.RenderCal();">

然而,如果我试图在不打开新窗口的情况下调用其中一些变量,这会让我陷入尴尬的境地。 (例如,如果我尝试将其中一个日历嵌入div而不是新窗口。)

  onChange="javascript:Cal.SwitchMth(this.selectedIndex);"

  var winMain=window;
  onChange="javascript:winMain.Cal.SwitchMth(this.selectedIndex);"

两者似乎都不起作用。有没有办法将当前窗口的句柄作为变量?或者我只是做错了什么?

This question看起来与我的相似,但答案无效。

2 个答案:

答案 0 :(得分:2)

将其更改为

var winMain = window.opener || window;

它说没有window.opener,使用窗口。

答案 1 :(得分:0)

window.open 等效于

var w = window.open('', '', 'width=400,height=400,resizeable,scrollbars');
w.document.write('Content goes here');
w.document.close();

根据您的需要使用它。