- PR -

別ウィンドウを開くタイミング

投稿者投稿内容
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2005-03-30 09:50
VB.NETでWEBアプリを開発しています。

画面が上下でフレーム分かれており、上フレームでボタンをクリックすると下フレームに情報を表示するようになっていて、
下フレームにあるボタンをクリックして別ウィンドウを開くのですが、その際にクリックイベントに処理を記述しています。
ボタンを押すとウィンドウは開くのですが、下フレームが上フレームを潰してしまいます。
ウィンドウを開く際にfalseを返せば、下フレームが上フレームを潰すことはなくなりますが、イベントに記述した処理がキックされません。
どのようにすれば、画面構成を保持したままイベント処理をキックして別ウィンドウを開くことが出来るのでしょうか。
よろしくお願いします。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-03-30 10:26
引用:

カウンターさんの書き込み (2005-03-30 09:50) より:
ウィンドウを開く際にfalseを返せば、下フレームが上フレームを潰すことはなくなりますが、イベントに記述した処理がキックされません。



"潰す"というのは具体的にどのような動作ですか。
あと、"別ウィンドウを開く"と単純に書いてありますが、開く方法はいくつもありまして"ウィンドウを開く際にfalseを返(す)"と書かれてもどんなことをしているのか分かりません。

カウンターさんが「ウィンドウを開くと言ったらこうするという事に決まっているじゃないか」と思っていらっしゃるその方法も書いてください。
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2005-03-30 11:19
多分に抽象的で失礼しました。

引用:

"潰す"というのは具体的にどのような動作ですか。


これは、以下のような状態になりフレームAは見えなくなります。
____________________
|                 |
| フレームA          |
|___________________|   
| フレームB          |
|                 |
|___________________|

ボタンクリック

____________________
|                  |
| フレームB           |
|                  |
|                  |
|____________________|

引用:

別ウィンドウを開く"と単純に書いてありますが、開く方法はいくつもありまして"ウィンドウを開く際にfalseを返(す)"と書かれてもどんなことをしているのか分かりません。



これは、ボタンにOnClick属性を持たせて、Javascriptのイベントを走らせています。

コード:
function DispNewWindow(){
	window.open('popup.aspx','', 'width=470,height=620');
	return false;
}



よろしくお願いします。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-03-30 12:51
なるほど。
今回は"ウィンドウを開く処理"というのは関係ないみたいですね。
試しにJavaScriptのwindow.open()の部分をコメントにしてDispNewWindow()でtrueを返すようにしてみてください。
ウィンドウを開く開かないに関わらずフレームAが消えてしまいませんか?

カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2005-03-30 13:05
そうですね。戻り値がtrueだとフレームAが消えます。
ちなみに、先ほど示した例はフレームAは消えないけれど、イベントが実行されないパターンでした。
イベント実行後にポストバックをキャンセルできれば良いのでしょうか?
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-03-30 13:18
フォームBにあるボタンをSubmitするボタンにしないで、自力でSubmitさせましょう。

コード:
function DispNewWindow(){
	window.open('popup.aspx','', 'width=470,height=620');
	parent.フレーム名.フォーム名.submit();
}



<INPUT type="button" onClick="DispNewWindow()">


カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2005-03-30 13:31
引用:

フォームBにあるボタンをSubmitするボタンにしないで、自力でSubmitさせましょう。



burton999さん、ありがとうございます。
それは、サーバーコントロールを使用せずに、HTMLコントロールのボタンを使用するという事でしょうか?


ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-03-30 13:58
ちょっと質問。
下フレームにあるボタンは別ウィンドウを開くものだけでしょうか?
それとも、他に下フレーム自身にポストバックさせるような他のボタンも存在しますか?

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