IEやFirefoxではshowModalDialogの戻り値が取得できますが、Google ChromeではNullが返されてしまいます。その解決方法を以下に紹介します。
親ページ:
次のようにコードをコピーします。
関数 openwindows(){
var obj = 新しいオブジェクト();
//モーダルサブフォームを開いて戻り値を取得します
var retval = window.showModalDialog("ordervideo.jsp?rderIds="+"0010,0020,0030",obj,"dialogWidth=500px;dialogHeight=500px");
//クロームの場合
if(retval == 未定義) {
retval = window.returnValue;
}
アラート(retval);
}
サブページ:
次のようにコードをコピーします。
関数 onload(){
//クロームの場合
if(window.opener != unknown) { //Google Chrome では window.opener の値は空ではありませんが、IE/Firefox では未定義なので、Google Chrome かどうか判断できます。
window.opener.returnValue = flag; //Google Chrome での戻り値の割り当て方法 window.opener.close(); //これを一度閉じないと、次のウィンドウを実行してもポップアップ ウィンドウを閉じることができません。 .close()、Google Chrome のポップアップ ウィンドウは新しいウィンドウであるため
}
それ以外 {
window.returnValue=flag; //この割り当てメソッドは IE/Firefox と互換性がありますが、Google Chrome はサポートしていません
}
window.close();
}