• ベストアンサー

ウィンドウが閉じない

フレーム付きの親ウィンドウから一つ子ウィンドウを生成し、その子ウィンドウ内のSubmitボタンのクリックするとメールを送信しその後、子ウィンドウ自身を閉じる動作をさせたいのですが、うまくいきません。 お助け下さい。 --------- 親ウィンドウ --------- window.open('kakunin.htm','CheckFrame'); ------------------------ --------- 子ウィンドウ --------- ~略~ function mailsub(){ window.close(); } --> </script> </head> <body> <div align="center"> <br><br> <META HTTP-EQUIV='Content-Type' CONTENT='text/html;CHARSET=Shift_JIS'> <form action="mailto:xxx@xxx.co.jp" method="post" enctype="text/plain" name="check">  <input type="submit" name="Submit" value="送信" onClick="mailsub()"> ~略~ ------------------------- これで子ウィンドウは閉じません。 オブジェクトを指定すればいいのかもしれませんが、親ウィンドウからの生成だとどうすればよいのかもわかりません。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

あんまり自信無しですが、 <form action="mailto:xxx@***.co.jp" method="post" enctype="text/plain" name="check" onsubmit="setTimeout('window.close()',10000);return true;"> <input type="submit" name="Submit" value="送信"> みたいな感じでできるかもしれません。 数字の10000は、適当に増減してみてください。

okcoce
質問者

補足

ご回答ありがとうございます。 早速試してみましたところ一見うまく動いているように見えました。 しかし、うまく動く時と動かない時がありました。 もしかしたらこちらの環境のせいもあるかもしれません。 OSはWin2000を使っているせいか、「送信」ボタンを押した後メールを送信してよいかの確認メッセージが出て、どうやらそれが邪魔しているようです。 ですので、この確認メッセージを出ないようにする方法か、確認メッセージが出ても子ウィンドウを閉じる事が出来る方法はありませんでしょうか?

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>確認メッセージを出ないようにする方法 ユーザー様の確認無しに勝手に情報をどこかへメールで送ることは問題がありますので、まっとうな方法ではできないと思います。 >うまく動く時と動かない時がありました。 やっぱりそうですか… 数値を大きめにして下さいとしか言えません。 うまい方法は、ちょっと思いつかないですね。ごめんなさい

okcoce
質問者

お礼

早速のお返事ありがとうございます >確認無しに勝手に情報をどこかへメールで送ることは問題がありますので、 やはり勝手にメールは無理がありますよね。 >うまい方法は、ちょっと思いつかないですね。ごめんなさい いえいえ、ご丁寧にありがとうございます

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

<form onSubmit="window.close()"> だけでいきませんか?

okcoce
質問者

補足

ご回答ありがとうございます。 残念ですがyambejp様の方法でもうまく動作しませんでした。 「回答ANo.1」の補足質問でも書きましたが、こちらの環境ですがOSはWin2000を使っているせいか、「送信」ボタンを押した後メールを送信してよいかの確認メッセージが出て、どうやらそれが邪魔しているようです。 ですので、この確認メッセージを出ないようにする方法か、確認メッセージが出ても子ウィンドウを閉じる事が出来る方法はありませんでしょうか?

関連するQ&A

  • 子ウィンドウに値を渡したい

    親ウィンドウ <form action="aaa.xxx" method="post" name="aaa"> 条件:<input type="text" name="joken"> <button onclick="子ウィンドウ開く"> </form> 親ウィンドウのbuttonをクリックすると、jokenをキーにウラでDBからデータを引っ張ってきます。それを、onclickで開いた子windowに表示する。 ということをやりたいのですが、1回ボタンを押すだけで、 ・ウラ(PHPです)にsubmitして、データを引っ張る ・子ウィンドウを開く ・子ウィンドウに引っ張ったデータを表示する という3つのことができるのでしょうか。 できるならば、恐れ入りますが、具体的に方法を示していただくか、 あるいは参考URLを教えていただけるととても助かります。 よろしくお願いします。

  • PHPのお問い合わせフォームが動かない

    「ぶっとびねっと」というレンタルサーバーに以下の2つのファイルをアップしました。 ・contacts.html ・contacts.php しかしフォームに入力後、送信を押してもメールが指定したアドレスに届きません。 なぜでしょうか。。。 ソースを下に貼りますので、ご教授願います。 -----  contacts.html  -------------------------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>メールフォーム</title> </head> <body> <form method="post" action="contacts.php"> お名前:<input type="text" name="namae" /><br /> メールアドレス:<input type="text" name="meado" /><br /> 件名:<input type="text" name="subject" /><br /> お問い合わせ内容:<textarea name="content" cols="50" rows="5"></textarea><br /> <input type="submit" name="submit" value="メール送信" /> </form> </body> </html> ------------------------------------------------------ -----  contacts.php  -------------------------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"    /> <title>メールフォーム</title> </head> <body> <?php if ($_POST["submit"] == "メール送信") { mb_language("Ja") ; mb_internal_encoding("UTF-8") ; $mailto="○○○○@hotmail.co.jp"; $subject = $_POST["subject"]; $content = $_POST["content"]; $namae = $_POST["namae"]; $meado = $_POST["meado"]; $mailfrom="From:" .mb_encode_mimeheader($namae) ."<".$meado.">"; mb_send_mail($mailto,$subject,$content,$mailfrom); } ?> <form method="post" action=""> お名前:<input type="text" name="namae" /><br /> メールアドレス:<input type="text" name="meado" /><br /> 件名:<input type="text" name="subject" /><br /> お問い合わせ内容:<textarea name="content" cols="50" rows="5"></textarea><br /> <input type="submit" name="submit" value="メール送信" /> </form> </body> </html> ------------------------------------------------------

    • ベストアンサー
    • PHP
  • 子ウィンドウから親ウィンドウの複数の項目へのデータ反映

    こんにちは。質問させて下さい。 入力項目が存在する親ウィンドウで リンクで子ウィンドウを表示します。 子ウィンドウで表示された<a>タグを押下すると、その情報が親ウィンドウの入力項目に反映されるまでは上手くいきました。 今困っているのは、 親ウィンドウで入力項目が複数だった場合に子ウィンドウで選択した情報を親ウィンドウのフォーカスが当っている入力項目にデータを反映したいと思っております。 こんな事ってできるのでしょうか? =========================== 【親ウィンドウ】 <a href="javascript:void(0)" onclick="window.open・・・>子ウィンドウ</a> <input type="text" name="A"><br> <input type="text" name="B"><br> <input type="text" name="C"><br> ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 【子ウィンドウ】 情報選択画面 =========================== 例えば、親ウィンドウBにフォーカスをあてて子ウィンドウを 開く。子ウィンドウで情報を選択したら親ウィンドウの入力項目Bに 選択した情報が反映されるという動きです。 どなたかご存知の方いらっしゃいましたらご教示下さい。 宜しくお願い致します。

  • window.onloadの実行と抑止の分岐方法

    親ウィンドウと子ウィンドウの間でデータを共有したいと思い、下記のソースを作成しました。 親ウィンドウで任意の文言を入力し、子ウィンドウを開くをクリックすると、子ウィンドウに値が渡されます。 子ウィンドウで任意の文言を入力し、値をセットをクリックすると、親ウィンドウに値が渡されます。 しかし親ウィンドウから子ウィンドウで値を渡した後、任意の文言を入力し送信ボタンを押すと、index.phpで子ウィンドウの変更後の文言をテキスト欄の値をセットしたあと、 子ウィンドウのwindow.onloadが走って値を追加してしまいました(下記のソースは簡易的なもののため、子ウィンドウのテキスト欄には<input type="text">を使用しておりますが、 実際には<select multiple="multiple">を使用しているため、下記のような表示になります)。 1. 親ウィンドウから子ウィンドウにセットされたテキストの例 あああ 2. 子ウィンドウで変更した文言 いいい 3. 送信ボタンクリック 子ウィンドウのselectには下記が表示されます。 いいい あああ その為、子ウィンドウでsubmitした際は、window.onloadを抑止できれば良いと思ったのですが、具体的にどう記述すればよいかわかりませんでしたので、 アドバイスいただける方がいらっしゃいましたら、ご教示の程、よろしくお願いします。 また、window.onloadの抑止にこだわっているわけではありません。 上記の送信ボタンクリック時、子ウィンドウのselectの中が「いいい」と表示される方法があれば大丈夫です。 【親ウィンドウ(index.html)】 <script type="text/javascript"> <!-- function window_open() { window.open('sub.html', null, 'width = 640, height = 480, scrollbars = yes' ) }; //--> </script> </head> <body> <form action="index.php" method="post" name="form00" id="form00"> <a onclick="window_open()" href="javascript:void(0)">子ウィンドウを開く</a> <br /> <input type="text" name="text00" value="" /> </form> </body> 【子ウィンドウ(sub.html)】 <script type="text/javascript"> <!-- window.onload = function() { if(window.opener) { document.form01.text01.value = window.opener.document.form00.text00.value; } } function Set() { window.opener.document.form00.text00.value = document.form01.text01.value; window.close(); } //--> </script> </head> <body> <form action="index.php" method="post" name="form01" id="form01"> <input type="text" name="text01" /> <input type="button" onclick="Set()" value="値をセット" /> <input type="submit" value="再読込" /> </form> </body> 以上、よろしくお願いします。

  • 親ウィンドウに制御を戻しcgiを実行させるには?

    (1) CGI結果をブラウザに表示させ(これを親ウィンドウとします)、 (2) 親ウィンドウのボタン押下で子ウィンドウをjavascriptで開き、 (3) その子ウィンドウのボタン押下で、親ウィンドウで違うCGIを実行させ、自身のウィンドウ(子ウィンドウ)は閉じる。 ということをしたいのですが、(3)の親ウィンドウへ制御を戻してCGIを実行させることが出来ません。この部分を教えて頂きたいです。自身のウィンドウは閉じられます。 子ウィンドウHTMLの抜粋 <html lang=ja> <head> <title>スケジュール設定結果</title> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <script language="JavaScript1.3" type="text/javascript" src="./script/xxx.js"></script> </head> <body> <form name="aaaa" method="post"> <center><input type="button" value="OK" onClick="javascript:xxxxx();"></center> </form> </body> </html> JavaScriptの抜粋 function xxxxx() { self.document.aaaa.target = ; ← この部分に設定するものは? self.document.aaaa.action = "./foo.cgi"; self.document.aaaa.submit(); window.self.close(); return; } ちなみに、「target」の部分に、window.openerとしても、親ウィンドウは何も変化なく、別ウィンドウが開いてしまいました。 親ウィンドウには特にwindow名称をつけていません。ブラウザ起動時の状態です。

  • 子ウィンドウを閉じるとき、親ウィンドウのテキストボックスにカーソルを移動したい。

    子ウィンドウを閉じるとき、親ウィンドウのテキストボックスにカーソルを移動したい。(java) <script> function openChild(f){ window.open("child2.htm","_blank"); } </script> <form> <input id="text1"><br /> <input id="text2"><br /> <input type="button" onclick="openChild(this.form)" value="子ウィンドを開く"> </form> 子ウィンドを閉じる <input type="button" onclick="window.close()" value="閉じる"> 親ウィンドウのテキストボックス(id="text2")にカーソルを移動したいのですが。 <input id="text2"><br />

  • 入力チェックについて

    今、メールフォームを作っているのですがHTMLで入力してもらいkakunin.phpでチェックします。入力ミスがあれば、error.htmlへミスが無ければそのままkakunin.phpで表示したいのですが、中々上手くいきません。長い文で恐縮ですがよろしければご教授ください。 ★HTML★ <form name="form1" method="post" action="kakunin.php"> <td width="64">お名前</td> <td width=<input type="text" name="name"></td> </tr> </table> <input type="submit" name="Submit" value="送信"> </form> ★kakunin.php★ <?php $name=$_POST["name"] $Submit=$_POST["Submit"] //記入チェック if($Submit=="送信") { if (empty ($name)){ header("Location: error.html"); exit; } } ?>

    • ベストアンサー
    • PHP
  • フォームタグを送信した後に表示されるページ

    フォームタグを送信した後に表示されるページを指定したいのですが、どうすればいいのか分かりません。タグは <form method=POST action="フォームサービスのCGIアドレス"> <input type=hidden name="_mailto" value="私のメアドです"> あなたのお名前<br> <input type="text" name="name"><br> (略) <input type=submit value="送信"> こんな感じです。 よろしくお願いします。

  • JavaScriptでアンケートを作成.。

    JavaScriptでアンケートを作成しました。 IE6.0で送信ボタンを押すとメール画面がでて、アンケート内容が送信できません。 宜しくお願いします。JavaScriptは有効になっています。 <form METHOD="POST" ACTION="mailto:XXX@***.ne.jp?Subject=XXXXX" ENCTYPE="text/plain" onSubmit="alert('ご協力ありがとうございます。')"> ■XXXアンケート: <select NAME="XXXアンケート"> <option VALUE="XXXますか?">XXXますか? <option VALUE="・ほとんどない ">・ほとんどない </select><br> <br> ■XXXの感想:<br> <input TYPE="radio" NAME="XXXの感想" VALUE="XXX">XXX <input TYPE="radio" NAME="XXXの感想" VALUE="XXX-1">XXX-1 <br><br> ■XXXな異変:<br> <input TYPE="radio" NAME="XXXな異変" VALUE=">XXX感じ">感じ <input TYPE="radio" NAME="XXXな異変"VALUE="XXXに痛み">XXXに痛み <br><br> よろしければコメントをどうぞ。<br> <textarea NAME="よろしければコメントをどうぞ。" ROWS="6" COLS="25" WRAP="hard"> </textarea> <br> <input TYPE="submit" VALUE="メールを送る"> <input TYPE="reset" VALUE="やり直し"> </font> </form>

  • 作ったメールフォームが返信されません

    自分のHPに以下のタグのメールフォームを作成しました。 けど返信が戻ってきません。何か問題があるのでしょうかお手数ですが教えていただけたらうれしいです。 <html> <head> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>なぜ?</title> </head> <body> <form name="myFORM" method="post" action="mailto:私のメールアドレス" enctype="text/plain"> <br> ご意見などお願いします。? <br> <input type="text" NAME="data"><br> <input type="submit" VALUE="送信"><br> </form> </body> </html>

専門家に質問してみよう