submit ボタンで新しいウィンドウで次のページを開く方法
2008/04/24 13:43更新
submitボタンを押すと、新しいウィンドウを開き、その新しいウィンドウでレスポンスを受け取って画面を表示する方法について解説します。
要点を整理してみます:
1、submitボタンを押すと、新しいウィンドウを開きます。
2、元の画面がそのまま残って、新しいウィンドウでレスポンスを受け取ります。
3、元の画面に他のボタンがあった場合、それらの動きに影響をしないようにしなければなりません。
4、どのボタンが押されたかサーバに通知しなければなりません(押されたボタンによって、サーバ側の処理の種類が変わるかもしれませんので)。
以下は、サンプルからその実現方法を簡単に説明します。
<html>
<head>
<script type="text/javascript">
<!--
function submitNew() {
//① blankウィンドウを開く。
var win = window.open("","myNewWnd","width=600,height=480,top=0,left=0,status=1");
//② myformのaction属性を取り出し保存
var action = document.myform.action;
//③ 押下されたボタンがbtnSubmitボタンであることをサーバに通知
document.myform.action = action + "?btnSubmit=dummy";
//④ レスポンスはmyNewWnd画面が受け取るように設定
document.myform.target = "myNewWnd";
//⑤ フォームのサブミット
document.myform.submit();
//⑥ myNewWnd画面がフォーカスをあてる
win.focus();
//⑦ 他のボタンに影響をしないようにtarget及びactionの値を元に戻す
document.myform.target = "_self";
document.myform.action = action;
return false;
}
//-->
</script>
</head>
<body>
<form id="myform" name="myform" method="post" action="/path/youraction">
その他テキストボックスやラジオボックス、チェックボックスなど
<input type="submit" value="Submit to New Window" id="btnSubmit" name="btnSubmit" onclick="return submitNew();" />
</form>
</body>
</html>
window.open("URL", "ウィンドウ名" [,"オプション"] )関数は、新しくウィンドウを開きます。
第一引数はウィンドウに表示するURLです。ここでは、""と設定されているため、最初の表示は空白ページと表示されます。
第二引数はウィンドウの名前で、nullと設定可能。ここでは、新規ウィンドウがレスポンスを受け取りますので、myNewWndという適当な名前をつけます。
第三引数はウィンドウの形状などを設定する文字列です。カンマで区切って記述します。
1、submitボタンを押すと、新しいウィンドウを開きます。
2、元の画面がそのまま残って、新しいウィンドウでレスポンスを受け取ります。
3、元の画面に他のボタンがあった場合、それらの動きに影響をしないようにしなければなりません。
4、どのボタンが押されたかサーバに通知しなければなりません(押されたボタンによって、サーバ側の処理の種類が変わるかもしれませんので)。
以下は、サンプルからその実現方法を簡単に説明します。
<html>
<head>
<script type="text/javascript">
<!--
function submitNew() {
//① blankウィンドウを開く。
var win = window.open("","myNewWnd","width=600,height=480,top=0,left=0,status=1");
//② myformのaction属性を取り出し保存
var action = document.myform.action;
//③ 押下されたボタンがbtnSubmitボタンであることをサーバに通知
document.myform.action = action + "?btnSubmit=dummy";
//④ レスポンスはmyNewWnd画面が受け取るように設定
document.myform.target = "myNewWnd";
//⑤ フォームのサブミット
document.myform.submit();
//⑥ myNewWnd画面がフォーカスをあてる
win.focus();
//⑦ 他のボタンに影響をしないようにtarget及びactionの値を元に戻す
document.myform.target = "_self";
document.myform.action = action;
return false;
}
//-->
</script>
</head>
<body>
<form id="myform" name="myform" method="post" action="/path/youraction">
その他テキストボックスやラジオボックス、チェックボックスなど
<input type="submit" value="Submit to New Window" id="btnSubmit" name="btnSubmit" onclick="return submitNew();" />
</form>
</body>
</html>
window.open("URL", "ウィンドウ名" [,"オプション"] )関数は、新しくウィンドウを開きます。
第一引数はウィンドウに表示するURLです。ここでは、""と設定されているため、最初の表示は空白ページと表示されます。
第二引数はウィンドウの名前で、nullと設定可能。ここでは、新規ウィンドウがレスポンスを受け取りますので、myNewWndという適当な名前をつけます。
第三引数はウィンドウの形状などを設定する文字列です。カンマで区切って記述します。
Sponsored Link
- 関連記事
- HTML/CSS/PHP/Javascript 便利なチートシート集 - (2009/12/26 21:25)
- Web開発初心者必ず身につけたい 30の習慣 - (2009/08/26 17:21)
- ログインユーザのWebページキャッシュ方法 - (2009/08/06 15:56)
- Web Front/End 開発者ためのチートシート 40選 - (2009/06/30 21:46)
- 密着:ある一人のWebデザイナーの一日 - (2009/05/29 17:20)
- Web開発に覚えておきたい便利なチートシート 16選 - (2009/04/03 16:34)
- 美しきベクタロゴデザイン30選 - (2009/03/25 12:53)
- Helveticaフォントを使ったすばらしいロゴデザイン40選 - (2009/03/25 11:39)
- 便利ツール100選 - ナビちゃん - (2009/03/09 22:31)
- Ajax技術:サンプルやチュートリアル50+選 - (2008/11/06 18:47)
- すばらしい背景画像を使ったWebデザイン70選 - (2008/10/21 22:47)
- Webデザインすばらしいロゴ30選 - (2008/10/21 22:20)
- ホームページ作成、サイト運営などに役立つツール集 を追加しました - (2008/09/03 21:25)
- はてなブックマークの活用術 - WEBマスタためのはてな - (2008/07/10 14:15)
- Free Online Photo Editor(Cellsea.com)- 高機能なオンライン画像エディター - (2008/07/06 22:08)