■showModalDialog(別ウィンドウ)で設定した項目を親画面に反映したい場合
StrutsでshowModalDialogを使いたいときの、一つの方法です。
ちなみに…
単なるポップアップ: ポップアップを開いた状態で親画面を操作できる。
<strong>showModalDialog</strong>: ポップアップを開いた状態では親画面を操作できない。
/////////////////////////////////////////////
//
// 親画面.jsp
//
/////////////////////////////////////////////
<script type="text/javascript">
/**
* ポップアップ(ショーモーダル)を開く詳細設定を行います。
* @param contextPath コンテキストパス
* @return ポップアップ先で設定された項目
*/
function popupDirector(contextPath) {
var nm = document.popupForm.name.value;
var ag = document.popupForm.age.value;
var ge = document.popupForm.gender.value;
var display = "dialogWidth:600px;dialogHeight:500px;center:yes;";
var url = contextPath + "/popupInit.do?name=" + nm + "&age=" + ag + "&gender=" + ge;
var retData = window.showModalDialog(url, window, display);
return retData;
}
/**
* ポップアップを開くように命令します。
* また、設定項目を親画面に代入します。
* @param contextPath コンテキストパス
*/
function popupInit(contextPath) {
// ポップアップを開くよう指示するとともに
// ポップアップ先で設定された項目を受け取る
var retData = popupDirector(contextPath);
//ポップアップ先で設定された項目を親画面に代入
document.popupForm.name.value = retData[0];
document.popupForm.age.value = retData[1];
document.popupForm.gender.value = retData[2];
}
</script>
.
.
.
<html:form action="popInit">
<html:hidden write="true" property="name"/><br>
<html:hidden write="true" property="age"/><br>
<html:hidden write="true" property="gender"/><br>
<input type="button" name=updateMail value="ポップアップ" onclick="popupInit('<%=request.getContextPath()%>')">
</html:form>
.
.
.
/////////////////////////////////////////////
//
// popupInitAction.java
//
/////////////////////////////////////////////
必要なければ何もしなくても良い。
/////////////////////////////////////////////
//
// 子画面.jsp
//
/////////////////////////////////////////////
<script language="JavaScript">
<!--
function windowClose() {
var retData= new Array(3);
retData[0] = document.popupForm.name.value;
retData[1] = document.popupForm.age.value;
retData[2] = document.popupForm.gender.value;
parent.returnValue = retData;
parent.window.close();
}
-->
</script>
.
.
.
<html:form action="popSubmit">
<html:text property="name"/><br>
<html:text property="age"/><br>
<html:text property="gender"/><br>
<input type="button" value="閉じる" onclick="windowClose()" />
</html:form>
.
.
.
StrutsでshowModalDialogを使いたいときの、一つの方法です。
ちなみに…
単なるポップアップ: ポップアップを開いた状態で親画面を操作できる。
<strong>showModalDialog</strong>: ポップアップを開いた状態では親画面を操作できない。
/////////////////////////////////////////////
//
// 親画面.jsp
//
/////////////////////////////////////////////
<script type="text/javascript">
/**
* ポップアップ(ショーモーダル)を開く詳細設定を行います。
* @param contextPath コンテキストパス
* @return ポップアップ先で設定された項目
*/
function popupDirector(contextPath) {
var nm = document.popupForm.name.value;
var ag = document.popupForm.age.value;
var ge = document.popupForm.gender.value;
var display = "dialogWidth:600px;dialogHeight:500px;center:yes;";
var url = contextPath + "/popupInit.do?name=" + nm + "&age=" + ag + "&gender=" + ge;
var retData = window.showModalDialog(url, window, display);
return retData;
}
/**
* ポップアップを開くように命令します。
* また、設定項目を親画面に代入します。
* @param contextPath コンテキストパス
*/
function popupInit(contextPath) {
// ポップアップを開くよう指示するとともに
// ポップアップ先で設定された項目を受け取る
var retData = popupDirector(contextPath);
//ポップアップ先で設定された項目を親画面に代入
document.popupForm.name.value = retData[0];
document.popupForm.age.value = retData[1];
document.popupForm.gender.value = retData[2];
}
</script>
.
.
.
<html:form action="popInit">
<html:hidden write="true" property="name"/><br>
<html:hidden write="true" property="age"/><br>
<html:hidden write="true" property="gender"/><br>
<input type="button" name=updateMail value="ポップアップ" onclick="popupInit('<%=request.getContextPath()%>')">
</html:form>
.
.
.
/////////////////////////////////////////////
//
// popupInitAction.java
//
/////////////////////////////////////////////
必要なければ何もしなくても良い。
/////////////////////////////////////////////
//
// 子画面.jsp
//
/////////////////////////////////////////////
<script language="JavaScript">
<!--
function windowClose() {
var retData= new Array(3);
retData[0] = document.popupForm.name.value;
retData[1] = document.popupForm.age.value;
retData[2] = document.popupForm.gender.value;
parent.returnValue = retData;
parent.window.close();
}
-->
</script>
.
.
.
<html:form action="popSubmit">
<html:text property="name"/><br>
<html:text property="age"/><br>
<html:text property="gender"/><br>
<input type="button" value="閉じる" onclick="windowClose()" />
</html:form>
.
.
.
« 選択肢は知っているか | Home | 1分間 意思決定 »
| Home |
