- PR -

【JavaScript】 window.openにてPOSTするには?

投稿者投稿内容
Zero
常連さん
会議室デビュー日: 2003/06/19
投稿数: 35
投稿日時: 2005-02-15 11:12
おせわになります。
JavaScriptをしようして、ボタンを押下したときに
別ウィンドウで、表示したいのですが、アドレスバーなどを表示させたくありません.
まぁ、いわゆる照会画面みたいなもんです.
targetを"_blank"にして、submitしてやれば、別ウィンドウでは表示されるのですが、
アドレスバーやmenuなどが表示されてしまいます.
そこで、JavaScriptのwindow.openで表示させたいのですが、
POSTをする方法がわかりません.

ご存知の方が居ましたら、ご指導の程よろしくお願いいたします.
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-02-15 11:24
JavaScriptならJavaではなく.NETの会議室の方が回答を得られやすいと思いますが・・・

コード:

window.open("about:blank","myName","windowStyle");
document.formName.target = "myName";
document.formName.method = "post";
document.formName.action = "???.html";
document.formName.submit();


window.open()の第2引数はターゲットとして指定可能な
windowオブジェクト名を定義します。
その後フォームのターゲットを先に定義した名前にすればOKです。


#検証していませんが

[ メッセージ編集済み 編集者: かつのり 編集日時 2005-02-15 11:27 ]

[ メッセージ編集済み 編集者: かつのり 編集日時 2005-02-15 11:28 ]
Zero
常連さん
会議室デビュー日: 2003/06/19
投稿数: 35
投稿日時: 2005-02-15 11:41
なるほど、targetを指定してやればいいのですね!
ありがとうございました!
未記入
会議室デビュー日: 2007/05/18
投稿数: 2
投稿日時: 2007-05-18 14:40

ここから、数秒後に自動で閉じるにはどうしたら良いでしょうか?
書いてみましたが、時間設定と内容の表示がされません。

[/code]
NewWindow = window.open("about:blank","Rank","width=500,height=125,menubar=no,toolbar=no");
CloseWindow = setTimeout ( 'Close()' , 3000 ) ;
document.form2.target = "Rank";
document.form2.submit();
NewWindow.close() ;
clearTimeout( 'CloseWindow' ) ;
[/code]


[ メッセージ編集済み 編集者: かつのり 編集日時 2005-02-15 11:27 ]

[ メッセージ編集済み 編集者: かつのり 編集日時 2005-02-15 11:28 ]
[/quote]

[ メッセージ編集済み 編集者: 未記入 編集日時 2007-05-18 14:47 ]
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-05-18 15:09
引用:

未記入さんの書き込み (2007-05-18 14:40) より:

ここから、数秒後に自動で閉じるにはどうしたら良いでしょうか?



その処理だと、

1.ポップアップで別ウィンドウを開く
2.開いた別ウィンドウで該当URLにPOST
3.POSTの結果のレスポンスが得られようが、そうでなかろうが
  そんなことは気にせず一定時間たってからポップアップを閉じる

という動きになるのでは?
求める要件はなんですか?
未記入
会議室デビュー日: 2007/05/18
投稿数: 2
投稿日時: 2007-05-18 16:22
ご返答ありがとうございます。
1つのフォームと1つのsubmitボタンから、2つのCGIへ値を渡して
CGIの戻り(結果)を一方はメインで
もう一方は小窓で、数秒程度表示したいと考えています。[/quote]

mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2007-05-18 16:26
引用:

未記入さんの書き込み (2007-05-18 14:40) より:
コード:
	NewWindow = window.open("about:blank","Rank","width=500,height=125,menubar=no,toolbar=no");
	CloseWindow = setTimeout ( 'Close()' , 3000 ) ;
	document.form2.target = "Rank";
	document.form2.submit();
	NewWindow.close() ;
	clearTimeout( 'CloseWindow' ) ;




NewWindow.close()で即座にクローズしようとしているように、見えるんですが…。
うーん、開くほうのページで、onloadタイミングsetTimeoutしてはだめなんですかね?
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-05-18 16:27
引用:

未記入さんの書き込み (2007-05-18 16:22) より:
1つのフォームと1つのsubmitボタンから、2つのCGIへ値を渡して
CGIの戻り(結果)を一方はメインで
もう一方は小窓で、数秒程度表示したいと考えています。



結果を数秒表示したいのであれば、ポップアップ側のリクエストに対して
返されるHTMLにonload部分で一定時間が過ぎると閉じるような
JavaScriptを仕込むのが通常でしょうね。

本体側、つまりwindow.openする側から制御するのは難しい
(安定した動作が期待しにくいという意味で)のではないでしょうか。

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