多くのモーダル ダイアログを使用して入力を受け取る Web アプリケーションに取り組んでいます。この問題は、アプリを IE11 に対応させ始めたときに始まりました (IE8 では問題なく動作します)。モーダル ダイアログ ボックスは、メイン ページから呼び出されると完全に値を返しますが、モーダル ダイアログからモーダル ダイアログを作成すると、値は返されますが、キャッチされず、undefined
.
//calling the values
var ret = ShowDialogOpen(pageUrl, width, height);
function ShowDialogOpen(PageName, strWidth, strHeight) {
var DialogOptions = "Center=Yes; Scrollbar=No; dialogWidth=" + strWidth + "; dialogTop=150px; dialogHeight=" + strHeight + "; Help=No; Status=No; Resizable=Yes;";
var OpenUrl = PageName;
var ret = window.showModalDialog(OpenUrl, "Yes", DialogOptions);
return ret;
}
//Dialog returning values
function ReturnValues() {
var lstBox = document.getElementById("lst_Name");
var texts = "";
var values = "";
for (i=0; i<lstBox.options.length; i++) {
texts = texts + lstBox.options[i].text + "!";
values = values + lstBox.options[i].value + "!";
}
window.returnValue = texts + "$" + values;
Close();
return false;
}
このコードは、メイン ページ経由で使用すると完全に機能しますが、モーダル ダイアログ ページから使用するreturnValue
と失われます。