我可以从ModalDialog窗口获取开启窗口吗?

时间:2010-06-24 11:35:07

标签: javascript

通常当使用window.open打开一个窗口时,我可以使用window.opener()来访问调用者窗口,是否可以在模态对话框(window.showModalDialog)中进行类似操作?

1 个答案:

答案 0 :(得分:4)

您可以在MSDN页面的comment上阅读showModalDialog(感谢Pekka),

  

[t]他window.opener方法返回   null,而不是对...的引用   打开窗口。所以你无法刷新   打开窗口   window.opener.location.refresh()   (例如,如果您使用   showModalDialog打开编辑   对话)。如果你想做的就是   每次刷新打开的窗口   ModalDialog关闭,这很容易   (包括window.location.refresh()   在电话会议结束后   showModalDialog)。但如果你只是   想要刷新打开的窗口   某些情况(例如,开放   窗口需要一段时间来刷新),你   通过传递一个可以做到这一点   dialogArgument

     

更聪明(我认为)的方式是   将窗口引用本身作为dialogArgument 传递。在里面   调用窗口,使用   window.showModalDialog('newurl.asp', window)。在被叫对话框中   使用var window_opener = window.dialogArguments检索引用。您可以使用   存储的窗口引用   变量window_opener代替   window.opener,刷新   从被调用的对话框中调用窗口。

     

请注意Firefox和Chrome(适用于   例)似乎没有这些   限制,并似乎对待   ModalDialogs更像常规   视窗。如果你这样做,请记住这一点   使用其中一种浏览器进行测试   但打算你的申请工作   所有浏览器。