2 つの aspx ページがあります。それらを Page1 と Page2 と呼びます。Page1 には ListBox と Button があります。Button は Page2 を開きます。Page2 には ListBox と Button があります。Page2 ボタンには、Javascript で記述された OnClientClick メソッドがあります。window.opener を使用して Page1 に戻り、Page2 ListBox でチェックされた項目の値を Page1 の Javascript 関数に渡します。アラートを使用して、Page2 が値を正しく Page1 に戻し、Page1 関数が起動することを確認しました。Web サイトを Windows 7 マシンに公開すると、Page1 関数は正常に機能します。しかし、Windows 2008 Standard サーバーでは、Page1 の ListBox に新しい ListBox アイテムとして値を追加する行 (演習の要点) に到達すると、Javascript が機能しません。エラーはスローされませんが、ListBox に項目が追加されません。その時点以降にスクリプトに挿入されたアラートは発生しません。コードは次のとおりです。
function ProcessFromPopup(dvalue, text) {
var htmlSelect = document.getElementById('<%=lstSelEmployees.ClientID%>');
var selectBoxOption = this.document.createElement("option");
selectBoxOption.value = dvalue;
selectBoxOption.text = text;
htmlSelect.add(selectBoxOption, null);
return true;
}
前述のとおり、「htmlSelect.add」の行は何も実行せず、その行の後に挿入されたアラートは発生しません。その行のすぐ上に挿入されたアラートは発生します。それで、私たちは何を間違っていますか?.Net 4.0 フレームワークを使用しています。また、これは IE9 と 10 で見られる動作ですが、Chrome や Safariでは見られません。Chrome と Safari では、コードは正常に機能します。