我有一个弹出窗口,它将从网格中搜索项目。当直接选择一行时,它将值返回给父页面。但是,如果我通过按钮单击搜索网格并选择一行,则父页面会收到未定义的对象,尽管从弹出窗口中返回了正确的值。父页面如何接收正确的值?
问问题
1784 次
1 回答
0
OP 在对该问题的评论中确实提到了这一点,但要明确一点:这个答案是用户 ConnorsFan 的副本。如果答案已更新,则可能会出现任何更新。
为了继续在我的页面中使用 showModalDialog,我必须想出我自己的解决方法来解决这个错误。所以,这里...
在 Google Chrome 中,回发后,showModalDialog 总是返回 undefined。但是,模式对话框中的 window.opener 属性指向调用者窗口,即使在回发之后也是如此。所以,我考虑将对话框的结果放在调用者窗口的 returnValue 属性中。它有效。
在来电窗口中:
var prevReturnValue = window.returnValue; // Save the current returnValue
window.returnValue = undefined;
var dlgReturnValue = window.showModalDialog(...);
if (dlgReturnValue == undefined) // We don't know here if undefined is the real result...
{
// So we take no chance, in case this is the Google Chrome bug
dlgReturnValue = window.returnValue;
}
window.returnValue = prevReturnValue; // Restore the original returnValue
此时,使用 dlgReturnValue 进行进一步处理 在模态对话窗口中:
if (window.opener)
{
window.opener.returnValue = dateValue;
}
window.returnValue = dateValue;
self.close();
于 2013-02-19T10:12:04.067 回答