- - PR -
子画面から別フレームに対しての更新
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-01-23 16:08
下記の図のような遷移で、BBBフレーム内のボタン(複数あります)をクリックすると入力用子画面が表示され、子画面の【閉じる】ボタンをクリックすると子画面が閉じられ、AAA画面に子画面で入力した内容が表示される、というものを作成したいのですが、子画面からAAAフレームに対してうまくPage_load イベントを発生することができません。
子画面から親フレーム(BBB)でない別のフレーム(AAA)のPage_load イベントを発生されるにはどうしたらいいのでしょうか。 不可能であれば、何か別の方法がありませんか? よろしくお願いいたします。 +-------+-------+ | | | | AAA | BBB | | | | | | +--+ | | | | | | | | +--+ | +-↑----+---↓--+ ↑ ↓ ↑ +-----+ ↑ | CCC | ↑ | +-+ | ←←←←←| | | | +-+ | +-----+ |
|
投稿日時: 2007-01-23 16:53
状況がはっきりつかめないので、憶測になりますが・・・。
[AAA]と[BBB]は同一ウィンドウ内に並ぶフレームのページということであっていますか? (これが違うと下記の回答は意味をなさなくなります。) 上記見解で回答させていただくとすれば、「Page_Loadを発生させたい。」ということは、つまりページを再読み込みさせればいいわけですよね? [AAA]フレームにフレーム名をつけて、子画面を閉じるときに該当フレームを指定してページの再読み込みを行えば実現できそうですが、いかがでしょうか? |
|
投稿日時: 2007-01-23 17:23
KIMERAさん、ご返信ありがとうございます。
>[AAA]と[BBB]は同一ウィンドウ内に並ぶフレームのページということであっていますか? あっています。 子画面からみると親は[BBB]となります。そのため、子画面から[AAA]をたどるには、子画面→[BBB](親)→フレーム全体→[AAA]となると思うのですが、間違っていますでしょうか? このため、子画面からどうやると[AAA]の「Page_Loadを発生させる」といのをどうやっていればよいのかわからなかった次第です。 |
|
投稿日時: 2007-01-23 18:20
操作方法がわからない。ということでしょうか?
JavaScriptを使うと実現できます。 コードそのまま書いてしまいますが、ブラウザ依存などがないかお確かめください。 子画面で閉じるボタンを押されたときに、 window.opener.parent.AAA.location.href('AAA.aspx'); というスクリプトを流せばできます。 スクリプトを見ていただければわかるかと思いますが、 windowが自分自身をさして、openerがBBB画面、parentはフレーム全体というように、順番に上っていったところで、フレーム全体が握っているAAA画面をさしてページ遷移を行う。 といった仕組みです。 |
|
投稿日時: 2007-01-23 18:24
すみません、念のために追記です。
上記のようにAAA画面を名前指定するばあい、フレームページのインナーフレームに名前を定義づけておかないといけません。 <IFRAME name="AAA src="AAA.aspx"></IFRAME> となっていることが条件です。 その他、応用したやり方は色々とありますので、調べてみてください。 |
|
投稿日時: 2007-01-23 19:25
KIMERAさん、ご返信ありがとうございます。
できました。 window.opener.parent.AAAとたどれるのですね。 とても勉強になりました。 ありがとうございました。 |
1