- PR -

Javaで子画面から親画面のフレームページの一部を変える

投稿者投稿内容
Sum+Go
常連さん
会議室デビュー日: 2006/03/11
投稿数: 40
投稿日時: 2006-05-26 14:31
ご教授下さい。
まずやりたいことは、件名にあるとおり、「Javaで子画面から親画面のフレームページの一部を変える」という作業です。
F1、F2というフレームから成る親画面Aがあります。F2から子画面Bのログイン画面をサーブレットで呼び出し、ログインに成功した時に、親画面AのフレームF1をリロードしたいのですが、果たしてJavaで可能でしょうか?
dispatcherにそのような機能が含まれているかよくわからないのですが、何かよいやり方があれば教えて頂けないでしょうか。
よろしくお願いします。
はちぃ
常連さん
会議室デビュー日: 2004/12/20
投稿数: 29
投稿日時: 2006-05-26 15:28
引用:

Sum+Goさんの書き込み (2006-05-26 14:31) より:
ご教授下さい。
まずやりたいことは、件名にあるとおり、「Javaで子画面から親画面のフレームページの一部を変える」という作業です。
F1、F2というフレームから成る親画面Aがあります。F2から子画面Bのログイン画面をサーブレットで呼び出し、ログインに成功した時に、親画面AのフレームF1をリロードしたいのですが、果たしてJavaで可能でしょうか?
dispatcherにそのような機能が含まれているかよくわからないのですが、何かよいやり方があれば教えて頂けないでしょうか。
よろしくお願いします。


JavaScriptを使わないでやる。ということですか。?
Sum+Go
常連さん
会議室デビュー日: 2006/03/11
投稿数: 40
投稿日時: 2006-05-26 15:38
はい。そうです。Javaのみ使ってやるということです。
子画面でJavaScriptのopenerを利用して、親のフレームページを変えるやり方もあるかと思いますが、今回はログイン後の画面がこちらで管理しているファイルではない(他サーバー)にあるので、それが出来ないのです。なので、サーブレットを利用し、ログインの確認が取れ、dispatcherする前に、親ウィンドウを変えたいというわけです。
はちぃ
常連さん
会議室デビュー日: 2004/12/20
投稿数: 29
投稿日時: 2006-05-26 15:51
理解が悪く、申し訳ないのですが、確認させて下さい。
A(親)画面はSum+Goさんの管理対象で、
B(子)画面はSum+Goさんの管理対象外ということでしょうか。
Sum+Go
常連さん
会議室デビュー日: 2006/03/11
投稿数: 40
投稿日時: 2006-05-26 16:23
>理解が悪く、申し訳ないのですが、確認させて下さい。
とんでもないです!こちらこそ説明が下手で申し訳ないです!

まず、画面遷移についてまとめます。
■A(親画面)からB(子画面=ログイン画面)へ遷移する。
■B(ログイン画面)でログインできたら、ログイン画面がC画面に変わる。(C画面はログイン画面と同じウィンドウになります。)

次にファイル管理対象についてまとめてみました。
■A(親画面)、B(子画面=ログイン画面)はこちらで管理してます。
■C画面のみ他で管理している。

という状況です。C画面は「いじれない」という前提で対処しなければいけない状況です。
はちぃ
常連さん
会議室デビュー日: 2004/12/20
投稿数: 29
投稿日時: 2006-05-26 16:44
申し訳ないです。
これだけ聞いておきながらJavaScriptを使わない方法が思いつきませんでした。
的外れかも知れませんが、サンプルを掲載しておきます。
(AのみJavaScriptを使用)

A画面-------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"/>
<title>parent</title>
<script type="text/javascript"><!--
var child;
var isChange = false;
function openChild() {
child = window.open("b.html", "b");
waite();
}
function waite() {
if (!child.closed) {
if (String(child.location).indexOf("b.html") > -1) {
setTimeout("waite()", 1000);
return;
}
}
alert("changed");
}
// --></script>
</head>
<body>
<a href="javascript:openChild();">子画面を開く</a>
</body>
</html>
-------------------------------------A画面

B画面-------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"/>
<title>child</title>
</head>
<body>
<h1>子画面</h1>
<a href="c.html">子画面2へ移動</a><br>
<input type="button" value="close" onclick="window.close();" />
</body>
</html>
-------------------------------------B画面

C画面-------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"/>
<title>child2</title>
</head>
<body>
<h1>child2</h1>
</body>
</html>
-------------------------------------C画面

申し訳ないですが、これくらいしか思いつきませんでした。

Sum+Go
常連さん
会議室デビュー日: 2006/03/11
投稿数: 40
投稿日時: 2006-05-26 17:24
返信ありがとうございます。
やっぱりJava上では制御することは出来ないのでしょうかね。。。
もう少し考えてみます。。。
はちぃ
常連さん
会議室デビュー日: 2004/12/20
投稿数: 29
投稿日時: 2006-05-26 17:47
引用:

Sum+Goさんの書き込み (2006-05-26 17:24) より:
返信ありがとうございます。
やっぱりJava上では制御することは出来ないのでしょうかね。。。
もう少し考えてみます。。。


お力添えできず、申し訳ございませんでした。

スキルアップ/キャリアアップ(JOB@IT)