JavaScriptでPOSTで自ウィンドウのなりかわり表示させたい

このQ&Aのポイント
  • JavaScriptでPOSTを使って自ウィンドウのなりかわり表示を行いたいです。
  • 現在のコードでは別画面が表示され、送信元でのwindow.close()によりセキュリティ警告が表示されます。
  • POSTで渡す方法で警告ポップアップを表示せず、ターゲット名を指定して自画面を遷移させる方法はありますか?
回答を見る
  • ベストアンサー

JavaScriptでPOSTで自ウィンドウのなりかわり表示させたい

下記のJavascriptを使ってPostで遷移させたいのですが、 下記のままだと別画面が表示され、送信元ではwindow.close();を行っているためブラウザのセキュリティ警告で「閉じますか」のポップアップが表れます。 function link(err_flg){ var url = ""; if(err_flg == -1){ url = "err.html"; }else if(err_flg == 0){ url = "http://**.com/dir/direct.action"; } document.fm.action = url; document.fm.method = "POST"; document.fm.target = "aaa"; document.fm.subm.click(); window.close(); } POSTで渡し、警告ポップアップを表示させず且つターゲット名を指定し、自画面が成り代わる(http://**.com/dir/direct.actionのURLに対して)方法はございますか? よろしくお願いいたします。

  • fm0606
  • お礼率13% (100/761)

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

>POSTで渡し、警告ポップアップを表示させず且つターゲット名を指定し、自画面が成り代わる なぜそうする必要があるのか理解できないので、的外れな回答かもしれませんが・・・ } window.name = "aaa"; document.fm.action = url; document.fm.method = "POST"; document.fm.target = "aaa"; document.fm.subm.click(); } 自分の名前を書き換える。これでどうでしょう?

その他の回答 (1)

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

自ウィンドウを閉じること自体に問題があるので 警告なしで実行しようという無茶はいってはいけません。 今回やりたいのは再送信を防ぎたいということでしょうか? もしやるなら (1)aaaウィンドウで開く (2)aaaウィンドウからparentのlocation.hrefを書き換えて、「データを送りました」画面にする。 (3)aaaウィンドウで自分を閉じる。

関連するQ&A

  • firefox(3.6.10)で、新しいウィンドウを開いて、POSTデ

    firefox(3.6.10)で、新しいウィンドウを開いて、POSTデータを送るには、どのように書けばいいでしょうか?現在のソースではIE7でしか正常に動作しませんでした(ついでにSleipnirでも動作できるとありがたいです)。 <script> function openNewWindow(url){ obj = document.change; window.open(url, "targetWindow", "width=550,height=550,scrollbars=yes,resizable=yes,status=yes"); // フォームのサブミット obj.method = "post"; obj.action = url; obj.submit(); } </script> <form name="change" action="myself.php" method="post" target="targetWindow"> <input type="button" value="送信" onClick="openNewWindow('newWindow'); return false;"> <input type="hidden" name="hidden_data" value="hoge"> </form>

  • [javaScript] form action

    PHPとjavascriptで検索(別ページ)→検索結果表示(test.php)→指定リンククリック(test.php)→チェックボックスの値を親ウィンドウ(test.php)から子ウィンドウ(aaa.php、bbb.php)へ渡し、更新→親ウィンドウ(test.php)に反映→検索ボタン押下で再検索(test.php)という流れのプログラムを書いています。 親ウィンドウ(test.php)に反映までは実装できましたが、その後検索でsubmitすると、test.phpではなくaaa.phpかbbb.phpへ遷移してしまいます。 色々試してみましたがどうしてもわからず、どなたかご教授いただけませんでしょうか。 よろしくお願い致します。 [親ウィンドウ] function setDown(type) { window.open("", "test") ; if(type == 'aaa') { window.document.fm.action = "aaa.php"; } else if(type == 'bbb') { window.document.fm.action = "bbb.php"; } window.document.fm.target = "test"; window.document.fm.method = "POST"; window.document.fm.submit(); } <form action="index.php" method="post" name="fm"> <a href="javascript:void(0)" onClick="setDown('aaa');"return false>aaa指定</a> <div id="aaaDis"></div> <a href="javascript:void(0)" onClick="setDown('bbb');"return false>bbb指定</a> <div id="bbbDis"></div> <input type="text" name="keyword"> <input type="submit" name="search" value="検索"> </form> [子ウィンドウ aaa.php] if($_REQUEST["mode"] == "set") { foreach($_REQUEST["sample"] as $num => $val) { $addName .= $Func -> GetGenreName($val) . ","; $addNo .= $val. ","; } $addName = rtrim($addName ,","); $addNo = rtrim($addNo ,","); <script type="text/javascript"> <!-- var addName = '<?php echo $addName ; ?>'; var addNo = '<?php echo $addNo ; ?>'; var sampleName = addName.split(","); var sampleNo = addNo.split(","); if(sampleNo) { window.opener.document.getElementById('aaaDis').innerHTML = ""; for (var i in sampleNo){ window.opener.document.getElementById('aaaDis').innerHTML += '<input type="checkbox" name="sample[]" value="'+sampleNo[i]+'" checked>&nbsp;'+sampleName[i]; } } window.close(); // --> </script> } <form action="aaa.php" method="post"> <input type="hidden" name="mode" value="set"> <input type="submit" value="設定"> <input name="sample[]" TYPE="checkbox" VALUE="1">1111 ・ ・ ・ </form>

  • javascriptで困っています

    マウスがブラウザーの外側から出ると、ポップアップが出るようにしたいです。 loadEvents: function() { this.addEvent(document, "mouseout", function(e) { e = e ? e : window.event; if(e.target.tagName.toLowerCase() == "input") return; var vpWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); if(e.clientX >= (vpWidth - 50)) return; if(e.clientY >= 50) return; var from = e.relatedTarget || e.toElement; if(!from) bioEp.showPopup(); }.bind(this)); 現在は、上方向に出るとポップアップが出ます。 左右にマウスが出た時に、ポップアップ出るにはどう記述すれば良いでしょうか。 よろしくお願いいたします。

  • 簡潔なJavaScriptで実現したい

    次のような、btnToggleというクラス名のdivタグがいくつかあるHTMLで、 それぞれクリックするとそれぞれの「開く/閉じる」が反転するという動きをさせたいです。 <div class="btnToggle"><a href="#"><span>+</span>開く</a> <div>AAA</div> </div> <div class="btnToggle"><a href="#"><span>+</span>開く</a> <div>BBB</div> </div> <div class="btnToggle"><a href="#"><span>+</span>開く</a> <div>CCC</div> </div>    : <div class="btnToggle"><a href="#"><span>+</span>開く</a> <div>XXX</div> </div> 下記のようなJavaScriptで実行してみたのですが、 いくつかのdivタグをそれぞれクリックすると、flgの値と現在の状態が入れ替わってしまいます。 クラス名が同じで、flgも一つの変数なので当たり前なのですが… <script type="text/javascript"> $(document).ready(function(){ var flg = "close"; $(".btnToggle").click(function(){ if(flg == "close"){ $(this).html("<span>-</span>閉じる"); flg = "open"; }else{ $(this).html("<span>+</span>開く"); flg = "close"; } }); }); </script> 私が考えられることは、classではなく、idで「btnToggle1」「btnToggle2」「btnToggle3」…などと定義し、 JavaScriptのプログラムを次のように書くしか思いつかないのですが、 これでは、我ながら間抜けなプログラムだなと思いました。 <script type="text/javascript"> $(document).ready(function(){ var flg1 = "close"; $(".btnToggle1").click(function(){ if(flg1 == "close"){ $(this).html("<span>-</span>閉じる"); flg1 = "open"; }else{ $(this).html("<span>+</span>開く"); flg1 = "close"; } }); var flg2 = "close"; $(".btnToggle2").click(function(){ if(flg2 == "close"){ $(this).html("<span>-</span>閉じる"); flg2 = "open"; }else{ $(this).html("<span>+</span>開く"); flg2 = "close"; } }); var flg3 = "close"; $(".btnToggle3").click(function(){ if(flg3 == "close"){ $(this).html("<span>-</span>閉じる"); flg3 = "open"; }else{ $(this).html("<span>+</span>開く"); flg3 = "close"; } });        :        : }); </script> 配列などを使えばもっと簡潔になるのでしょうか。 どうか教えてくださいますようお願い申し上げます。

  • Javascriptでの小画面表示を閉じた後

    Javascriptでの小画面表示を閉じた場合の親画面の挙動 現在、以下のロジックで親画面から子画面を呼んでいます。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- winAAA = window.open("","winAAA","menubar=no,status=yes,scrollbars=yes,width=600,height=800,resizable=yes"); document.AAA_Form.action="BBB.do"; document.AAA_Form.target="winAAA"; document.AAA_Form.submit(); winAAA.focus(); ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- window.close();を使い、子画面の閉じるボタンで子画面を閉じているのですが、 なぜか、親画面の他ボタンを押下するとwindow.openしてない画面遷移のはずが、 新規子画面で立ち上がってしまいます。 原因がわかる方、ご教示お願いいたします。 動作環境は、以下となります。 OS:XP IE:IE8

  • post送信のについて

    post送信について ボタン部分は画像にし、下記のように設定しましたが ちゃんとできてますでしょうか?ボタンを押しても飛ぶのはとびますが ちゃんとPOST送信になってるのか不安です。 ちなみにURLを残さないようにしてるはずがfirefoxだと残ってましたので 間違ってると思ってます。。 <script type="text/javascript" > var element = document.createElement("input"); document.form[0].appendChild(element); document.form[0].method = "post"; document.form[0].action = "test.aspx"; </script> <body> <form action="URL" method="post"> <input name="form1" type="image" src="images/test.jpg" alt=""> </form> <form action="URL2" method="post"><input name="form2" type="image" src="images/test.jpg" alt=""> </form> </body>

  • 特定のウィンドウ名を持つウィンドウの有無を判別

    お世話になります。 現在、以下のスクリプトでPageA.htmlのボタンをクリックすると 新ウィンドウを開きPageB.jspを表示し、PageA.htmlは閉じます。 /* PageA.html */ function submitPageB(){ // "WindowB"が既に存在する場合は閉じる var dummy = window.open("","WindowB",""); dummy.close(); // 待ち受けページを開く var win = window.open("NowLoading.html","WindowB","width=800,height=600,scrollbars=no,resizable=no"); // WindowBにpost形式でパラメータ送信 with(window.document.formA){ action="PageB.jsp"; method="post"; target="WindowB"; submit(); } //PageA.htmlを閉じる window.close(); } これを"WindowB"が存在するか判別して "WindowB"がなければそのまま開く、 "WindowB"があればconfirmで新たに開くか開かないかを 選択させるようにしたいのですが、 "WindowB"というウィンドウ名のウィンドウを 取得する方法がわからないため実現できません。 var blWin = true;//※ここで"WindowB"が存在するかどうかを取得したい if(!blWin || confirm("既に開いています。新たに開きますか?")){ submitPageB(); } 特定のウィンドウ名のウィンドウの有無を知る方法、 あるいは上記のことを実現させるよい案はないでしょうか? よろしくお願いします。

  • open.window(javascript) を使わないで、新規windowを3つ開く方法

    JavaScpript の open.window を使うと、値がGET で渡ってしまいます。 POST でデータを渡したいので、FORM で window を 3つ開く方法って ないでしょうか? <FORM method=POST name=form1 target="window1" ACTION="/cgi-bin/search1.pl"> <input type="text" name="searchword1"> </form> <FORM method=POST name=form1 target="window2" ACTION="/cgi-bin/search2.pl"> <input type="text" name="searchword2"> </form> <FORM method=POST name=form1 target="window3" ACTION="/cgi-bin/search3.pl"> <input type="text" name="searchword3"> </form> の 3 つのフォームを 1 つの <input type="submit" name="Search" value=" 検索 "> で起動させるってことです。 (または、open.windows で値を渡すとき、POST で渡したい) よろしくお願いします。

    • ベストアンサー
    • CGI
  • IE6でiframeにPOSTできない

    同一ページに<form>と<iframe>があり、<form>のPOST先をその<iframe>にしています。 このとき、IE6のみPOSTできない条件があり困っております。 なんでも結構ですので、アドバイスいただけましたら助かります。 その条件は、 ・ページのURLとiframeのURLのスキーマとホスト名が一致していること です。 具体的には HTMLが <form name="formname" action="https://example.com/" method="post" target="iframename"> <input type="image" name="" src="image/button.gif" /> </form> <iframe name="iframename" src="https://example.com/page01"></iframe> の場合、 ■POSTがOKなパターン ページのURL=https://example.com/ ■POSTがNGなパターン ページのURL=http://example.com/ ページのURL=https://www.example.com/ よろしくお願いしますm(_ _)m

    • ベストアンサー
    • HTML
  • JavascriptからURLを表示させるには

    はじめまして デザインを担当していてJavascriptはよくわからないのですが、、、 Javascriptで function shop(tenpoNo, tantouNo) { document.getElementById("tenpo_no").value = tenpoNo; document.getElementById("tenpo_tantou").value = tantouNo; document.getElementById("post_pattern").value = "init"; document.shop_form.action = "http://***.jp/shop.php"; document.shop_form.target = "_self"; document.shop_form.submit(); } というのがあって (tenpoNo, tantouNo) は わかっているので URLとして  http://***.jp/shop.php?(tenpoNo, tantouNo) という風に 入力したら目的のページにアクセス出来るようにしたいのですが どのようにすれば出来ますでしょうか? ちなみに Javascriptで稼働しているページのリンクにマウスを置くと Javascript:shop("01","003")のようになります。 ご多忙のところ恐縮ですが ご教授をお待ちしております。。。

専門家に質問してみよう