アプリケーションは、asp.net 2.0 を使用して Windows サーバー 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 を同じ設定で使用して、同じソフトウェア バージョンを実行しています。どこかに設定上の問題があると思いがちですが、設定が同じであるため、判断するのは困難です。アプリの仕組みや使用されるテクノロジーを実際に変更することはできません。
何がこれを引き起こしているのか、誰にもアイデアがありますか?