- 締切済み
掲示版で「送信」後、掲示版ウインドウを自動で閉じたい
書き込みフォームを別小窓で表示するタイプの掲示版で、書き込み後に「送信」ボタンを押したら、書き込みフォームの別小窓を自動で閉じさせる方法を教えて下さい。 (過去に似たような質問があり、 http://www.usagi-js.com/sample/sample2/sample15a.htm が回答内に示されていましたが、こういう事ではないのです、、、。)
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- nontatta
- ベストアンサー率34% (18/52)
こんばんは(^ー^)ノ 補足ありがとうございます。 どこまでお力になれるか、わかりませんが、 ><FORM ACTION="~" METHOD="~" TARGET="~"> となっている所に NAME="***"も入れて、<HEAD>と</HEAD>の間に入れるdocument.***.submit();の、***と同じ名前を入れればいいんですよね? そうです。 >送信ボタンの所は、<INPUT TYPE="submit" NAME="Submit" VALUE="SUBMIT" class="T">となっているのですが、class="T"のあとに普通にonClick="frmSubmit()" /を入れていいのでしょうか、、、。 これもそうです。 が、その他の条件を考慮しないという前提のもとです... 配布されているスクリプトとのことですので、 作者の方が、他の部分でいろいろと設定されているかもしれませんね。その兼ね合いによっては動かなくなってしまいます。 ソースを見てみないことにはわかりませんが、不具合が起きる可能性が高いです。 参考URLも参照してみましたが、問題の部分を見つけることが出来ませんでした。 HIKALUさんご自身が作られているものでしたら、 ここでソースがどのようになっているのかを一部公開していただくことも可能ですけれどね(^^; >TYPE="button"に直してみたら、submitと同時に小窓が閉じました。が、掲示板に投稿内容が反映しませんでした。 とのこと、リロードはされたけれど、投稿内容が反映されなかったのでしょうか? それともリロードそのものがなされなかったのでしょうか?いずれにせよ、やはり、私が先に回答した内容に書き換えたことで、プログラムが動かなくなってしまっているような気がします。 HIKALUさんご自身が作られているものでしたら、 もっとましなアドバイスも出来たかもしれませんが、 作者の方に問い合わせるより他ないかな、という気もします。 最後に、1点だけ、 小窓をオープンする「新規書き込み」ボタンがメインページにあるのでしたら、 先の私の回答で、 document.f1.submit(); の下に、 window.opener.location.reload(true); と付け足してみて動くでしょうか? 力不足ですみませんm(__)m
- todo36
- ベストアンサー率58% (728/1234)
><FORM ACTION="~" METHOD="~" TARGET="~">で、TARGETはフレーム内の掲示板メインページにしていて、submitしたあと掲示板のメインページが勝手にリロードして投稿内容がすぐさま反映されるようになっています。 それなら回答1で動くはずだが ><body onload="window.close()"> これはtargetを自分自身にした場合です。
- todo36
- ベストアンサー率58% (728/1234)
<form>のtargetが自分自身だから、submitしたときに別の頁に飛び、それ以降のスクリプトは無視されるとおもいます。 targetを別窓(または隠しフレーム)にするれば、いけるかも。 掲示板の方(CGI/Perl??)を変更できるのあれば、応答を <body onload="window.close()"> とすればよいでしょう。
補足
有難うございます。 HPにフレームを使っていまして、そのフレームの1つに掲示板のメインページ(書き込み内容が表示されているページ)を表示させ、「新規書き込み」をクリックすると書き込みフォームが小窓で現れる、というふうになっています。 <FORM ACTION="~" METHOD="~" TARGET="~">で、TARGETはフレーム内の掲示板メインページにしていて、submitしたあと掲示板のメインページが勝手にリロードして投稿内容がすぐさま反映されるようになっています。 掲示板のメインページの</HEAD><BODY>のこの<BODY>を<body onload="window.close()">に変える、ということですよね?変えてみたんですが、小窓は閉じてくれませんでした、、、(><)
- nontatta
- ベストアンサー率34% (18/52)
こんにちは(^ー^)ノ 「こういうことではないのです」とは、どういうことですか? タイマーで自動的に閉じるのではなく、「送信」ボタンを押したと同時に閉じさせるということですか? それでしたら、「閉じる」ボタンのonclickイベントで フォームをsubmitした後に、その小窓をcloseさせれば よいと思いますが...(違いますでしょうか?) 以上の要件であれば、例えば <script type="text/javascript"> <!-- function frmSubmit(){ document.f1.submit(); window.close(); } //--> </script> </head> <body> <form name="f1"> <input>とか <select>とか... <input type="button" value="送信" onClick="frmSubmit()" /> </form> </body> みたいな感じでいいと思いますが、 ご質問の意図と見当違いな内容でしたらすみませんm(__)m
補足
ありがとうございます。 そうです、送信と同時に書き込みフォームを閉じてしまいたいのです。 それで、教えて頂いた方法でやってみたのですが、どうも閉じてくれません。 <FORM ACTION="~" METHOD="~" TARGET="~"> となっている所に NAME="***"も入れて、<HEAD>と</HEAD>の間に入れるdocument.***.submit();の、***と同じ名前を入れればいいんですよね? 送信ボタンの所は、<INPUT TYPE="submit" NAME="Submit" VALUE="SUBMIT" class="T">となっているのですが、class="T"のあとに普通にonClick="frmSubmit()" /を入れていいのでしょうか、、、。 よろしくお願いします。
補足
いろいろやってみて、nontattaさんのご回答1の方法で、何故閉じてくれないのかだけは解りました; 現状で送信ボタンの所は、<INPUT TYPE="submit" NAME="Submit" VALUE="SUBMIT" class="T">となっていまして、nontattaさんの教えて下さったとおり、TYPE="submit"をTYPE="button"に直してみたら、submitと同時に小窓が閉じました。が、掲示板に投稿内容が反映しませんでした。 ちなみに、azulboardのCGIを使っています。 http://www.estrella-azul.com/~sala/azulboard/menu.html