在应用程序正在使用asp.net 2.0上的Windows Server 2003的框运行,并且是一个IE特定的网络应用程序。有,在使用在showModalDialog(...)从位于在JavaScript的函数调用的iframe打开窗体的按钮。

下面是该函数的一个例子:

    function ShowBusinessHoursSubForm( source )
{
    var retval = window.showModalDialog("htm/" + locLocaleID + "/SubFormHostFrame.htm", source, "dialogWidth:265px;dialogHeight:261px;help:no;scroll:no;status:no;");

}

在主机框架加载包含正在使用的实际形式aspx页。在被打开的形式存在,点击后,改变的提交到窗体按钮。然而,如果没有改变提交表单前进行了改造,另一模态窗口弹出,说明没有改变形式。这种模态窗口是通过按钮单击事件一些JavaScript的注册开业。的代码如下(C#):

string l_S_ErrorScript = "<script type='text/javascript' language='javascript'>window.showModalDialog('htm/" + l_S_Culture + "/NotChangedErrorDialog.htm', '../../" + l_S_SkinPath + "', 'dialogWidth:310px;dialogHeight:145px;scroll:no;help:no;status:no;');</script>";

if(!m_Page.ClientScript.IsStartupScriptRegistered("ErrorScript"))
        {
            m_Page.ClientScript.RegisterStartupScript(this.GetType(), "ErrorScript", l_S_ErrorScript);
        }

当按钮被点击和该对话框需要出现以下JavaScript错误出现:

  

错误:对象不支持此属性或方法

奇怪的是,如果我在本地访问应用程序,并尝试一切工作正常,但是从另一台计算机访问导致错误。此外,根据什么样的服务器上(我们测试所有与Windows Server 2003的多台服务器)可能无法在其他计算机上发生错误或者。这些计算机使用IE的版本相同使用相同的设置运行相同的软件版本。我倾向于相信,有一些配置问题的地方,但这些设置是相同的这是很难说。我真的不能改变如何应用工程或技术要么使用。

任何人有任何想法,以什么可能会导致此?

有帮助吗?

解决方案

的问题是,在IE中的弹出窗口拦截在客户机上。由于模态窗口是在另一个模式窗口被打开时,弹出窗口拦截器并没有考虑它的父的一部分,并认为它应该阻止它。将站点添加到弹出窗口阻止程序后,一切都工作。

多么可笑!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top