该应用程序在使用 asp.net 2.0 的 windows server 2003 机器上运行,是一个特定于 IE 的 Web 应用程序。有一个按钮可以使用来自 JavaScript 中的函数调用的 showModalDialog(...) 在 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 和相同的设置运行相同的软件版本。我倾向于相信某处存在一些配置问题,但是设置相同很难说。我无法真正改变应用程序的工作方式或使用的技术。
有人对可能导致这种情况的原因有任何想法吗?