Javascript window.dialogArguments在Firefox 3 showModalDialog函数中回发后重置

Javascript window.dialogArguments在Firefox 3 showModalDialog函数中回发后重置,javascript,firefox,Javascript,Firefox,Firefox 3中的回发后会重置window.dialogArguments属性。回发后,如果尝试设置window.dialogArguments属性,则会产生错误。检查属性时,其值未定义。这很奇怪,因为就在模态窗口打开时,属性似乎被创建并可以访问。此行为仅在回发后发生。这是Firefox3的一个已知错误,因为IE中的showModalDialog方法(从版本4开始)刚刚实现。如何解决此问题?如果window.dialogArguments属性未定义,则可以通过window.opener.my

Firefox 3中的回发后会重置window.dialogArguments属性。回发后,如果尝试设置window.dialogArguments属性,则会产生错误。检查属性时,其值未定义。这很奇怪,因为就在模态窗口打开时,属性似乎被创建并可以访问。此行为仅在回发后发生。这是Firefox3的一个已知错误,因为IE中的showModalDialog方法(从版本4开始)刚刚实现。如何解决此问题?

如果window.dialogArguments属性未定义,则可以通过window.opener.myObject直接使用该对象:

开瓶器 对话
m_oArgs = new Object;
m_oArgs.Foo = "";
window.showModalDialog("http://myUrl/dialog.aspx", m_oArgs, 'dialogWidth:350px;dialogHeight:140px;');
alert(m_oArgs.Foo)
var DA = window.dialogArguments;
if (DA != null) {
    DA.Foo = "MyArgument";
} else {
    if ((!window.opener.closed) && (window.opener.m_oArgs)) {
        window.opener.m_oArgs.Foo = "MyArgument";
    }
}