• 締切済み

location.replaceについて

親ページから子ページを表示います。 ※JavaScriptのwindow.openで子ページを開いています。 子ページにはテキストボックス等を配置していて項目を入力したら[閉じる]ボタンを押下して子ページを閉じて子ページで入力された値で親ページを再表示して反映させていますがここで1つ問題が発生してしまいました。 ※子ページの[閉じる]ボタンにはonClickでJavaScriptを設定しています。 JavaScriptの内容は下記の通りです。 function closeScript(){   window.opener.location.reload();   window.close(); } 押下すると「再試行」のダイアログが表示されてしまって・・・ ネットで検索して調べてみたら「再試行」のダイアログの制御はできないとの事でした。 再度、ネットで調べていたら下記のような記述がありました。   location.replace(location.href); 上記のJavaScriptを下記のように変更して子ページの[閉じる]ボタンを押下してみたら「再試行」のダイアログが表示されず、子ページを閉じる事が出来ました。 しかし、親ページは何も反応がないような・・・ そこで皆さんに質問があります。 「location.replace(location.href);」が何をやっているのかをネットで調べてみましたが・・・ 「location.replace」・・・「指定したページへ移動する」との事でした。 「location.href」・・・現在表示しているページのアドレス(URL)を示す文字列です。 上記のスクリプトは何を行っているのでしょうか。実際に動かしてもうんともすんとも言わないので・・・ くだらない質問で申し訳ありませんがわかりやすく教えていただけませんでしょうか。 宜しくお願いします。

みんなの回答

  • dscripty
  • ベストアンサー率51% (166/325)
回答No.1

opener.location.href=opener.location.href.replace(opener.location.search,'')+'?_' または、親で <form name="some_form" method="GET" action="……"> しておいて、子で opener.document.forms['some_form'].submit(); あれ? どっちも、してることはおなじだね。

関連するQ&A

  • javascript の locationメソッド

    Javascript で、子(サブ)ウィンドを使っています 子ウィンドを開いて、とある処理を終了後に親ウィンドに指定のURLを表示させて子ウィンドを閉じる、という処理をしたいと思っています。 まず、親ウィンドにURLを渡すところはうまく動きます。 そのページはPHPで作られたページで、できており子ウィンドの処理でセッションに保存されたセッション変数を読み込んで動きます。 ページは遷移するのですが新しいセッション変数が読み込まれません。 ページをリロードすれば動作するので、子ウィンドを閉じる前に親ウィンドを再読込させればよいかな?と思ってreloadを入れてみました。 すると、リロードはしているようなのですが、今度は渡したURLに遷移しなくなってしまいました。 window.opener.location.replace(URL); window.opener.location.reload('true'); window.close(); このような処理はどうすればよろしいでしょうか? それとも諦めるしかありませんか? また、過去に同様な質問があるようでしたら、そのurlを教えていただけると幸いです。 見つけたのですが、探しきれませんでした。

  • location.hrefが動かない・・・

    F5が押された場合に指定したURLに飛ばすようにしたいのですがなかなかうまくいきません・・・ ブラウザはFirefox 2.0.0.7を使用しています コードは以下の様にしております <script type="text/javascript"><!-- function key(keyCode){ if (keyCode == 116){ location.href = "http://www.google.co.jp/"; } } --></script> <body onKeyDown="key(event.keyCode)"> </body> 指定URLはGoogleにしています これ状態でF5を押してもなにも起こらず普通に更新されるだけです location.href = "http://www.google.co.jp/";の部分をdocument.write('TEST');などのようにdocumet.writeに書き換えると普通に指定した文字列が表示させます location.hrefと同様にwindow.location.hrefやlocation.replaceでも指定URLに飛ばされません documet.writeは動くのでF5が押されたかどうか判断するコードは間違っていないと思うのですが・・・ ちなみにIEでもダメでした 誰か原因がわかる方が居られましたら教えてください よろしくお願いします

  • フォームデータをlocation.replaceで次のページに渡すには

    php+mysqlで会員制のサイトを作っており、 javascriptも使っているのですが、 行き詰ってしまいましたので、助けてください。 投稿をインプット→確認→データ登録→終了 のように処理させているのですが、 ブラウザの"戻る"ボタンを押すと、不都合が生じるので、 投稿のページの履歴を残さないようにしたいと思います。 そのためにlocation.replaceを使えば、履歴を残さず、 次のページに進むことができるのですが、 フォームのデータを次のページに渡すことができません。 すみませんが、 履歴を残さずに、フォームデータを次のページに渡す方法を、 教えていただけないででょうか。

  • IE8のwindow.opener.location.href動作について

    宜しくお願い致します。 IE8のjavascript「window.opener.location.href」の動作がIE7から変わった様で、思い通りの動作をしなくなりました。 1、WEBサーバ側の親ウィンドウからWinXPにインストールしたローカルサーバ側のPHPスクリプトへwindow.openで子ポップアップウィンドウを開きます。 2、ローカルサーバ側の子ポップアップウィンドウで特定のプログラムを走らせ、WEBサーバ側の親ウィンドウへローカルサーバ側の子ポップアップウィンドウからwindow.opener.location.hrefで、親ウィンドウの表示ページを切り替える。 という動作をしていたのですが、IE8にアップデートしたら、ローカルサーバ側の子ウィンドウからWEBサーバ側のURLを切り替えると、別ウィンドウで開いてしまい、親ウィンドウが2ページに分かれます。 さらに、元の親ウィンドウはURLが変更にならず、新しく開いたページのURLだけ変わっています。 この動作をIE7と同じ様に、子ウィンドウから元の親ウィンドウのURLを変更させるにはどうすればよいのでしょうか?

  • 新規ウインドウから他のページにいけますか?

    JavaScriptのwindow.openでページを表示した時に小さな別Windowも表示させるようにしています。 その画面を閉じるのに <input type="button" value="CLOSE" onclick="window.close()"> をクリックすると閉じるのですが、もう一つボタンを付けてそのボタンをクリックするとTOPページに戻るようにしたいんです。 location.href = "URL";で他のページにいけるんですよね? ボタンを表示させるには <input type="button" value="TOP" onclick="window.location.href="URL";"> でいいのでしょうか? やってみたのですが何も動きません。 どなたかわかる方、教えて頂けないでしょうか?よろしくお願いします。

  • location.replaceでの移動

    以下事象につきまして、原因、および対処法をご存知な方が いらっしゃいましたらご教授願います。 「location.replace」メソッドを使用し、履歴を残さず ページを移動したいと考えております。 【サンプルコード】 【test.html】 <html> <body> <a href="http://hogehoge.com/sample.html">テスト</a> </body> </html> 【sample.html】 <html> <body> <script type="text/javascript"> <!-- top.location.replace("http://hogehoge/test2.html"); //--></script> </body> </html> 【test2.html】(1) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body></body> </html> 【test2.html】(2) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> </body> </html> 事象として、test.htmlよりsample.htmlを経由して、【test2.html】(1)へ移動した場合 ブラウザの「戻る」ボタンをクリックして、test.htmlに戻れます。 しかし、test.htmlよりsample.htmlを経由して、【test2.html】(2)へ移動した場合 ブラウザの「戻る」ボタンをクリックしても、test.htmlに戻れなくなります。 そこで、ご教授いただきたいのですが・・・ 1.移動先の<meta>タグ中のcharsetの違いでなぜこのような違いが生じるか   ご存知な方がいらっしゃれば、原因につきましてご教授願います。 2.可能であれば、【test2.html】(2)の内容は変更せずに、   【test2.html】(2)に移動しても、戻るボタンをクリックしてtest.htmlに戻れるよう   sample.html側で対応をしたいと考えておりますが、対応方法につきまして   ご教授願えないでしょうか? なお、事象が確認されたクライアントマシンはWinXP、ブラウザはIE6.0(SP2)になります。

  • 「このブログをリンクに追加する」を別窓で開きたい

    投稿失礼します。 現在FC2でブログを運営しているのですが、 下記のリンクを新しいウィンドウで開かせることは可能でしょうか? <a href="javascript:window.location.replace('http://blog.fc2.com/?linkurl='+window.location.href);">このブログをリンクに追加する</a></li> よろしくお願いします。

  • サブウィンドウから、親ページのリンクを操作し、自身は閉じるやり方

    すいません。javascriptに詳しい方、教えて下さい。 今、親ページからポップアップで、サブウインドウを開いています。 やりたいことは、サブウィンドウにあるcloseボタンを押したら、 親ウィンドウを指定のページに移動して表示させ、サブウィンドウ自身は閉じる動作がしたいです。 調べてみたら、opener.location.hrefというのを使えばできるみたいなのですが、こういう記述で大丈夫なのでしょうか? プレビューしてみたら、一応動いてくれているみたいですが、文法的にはどうなのでしょうか? 教えていただければ、ありがたいです。 以下にソースを記述します。 <a href="index.htm#F" onClick="opener.location.href='index.htm#F; return false;" javascript:window.close();">

  • location.hrefのURLについて

    以下のリンクの場合、現在表示しているアドレス(URL)が送られますが、 <a onclick="window.open('http://exsample.com='+encodeURIComponent(document.title)+' '+encodeURI(location.href));" href="javascript:void(0);"> これを指定したURLに変更したいのですが、その記述方法がわかりません。 ご教授よろしくお願いします。

  • ウインドウ元のURLをフレームごとかえる

    小ウインドウを開いて、URLをクリックすると元のページのURLがかわるという方法を教えてください! 下記の書き方だと、フレームの中に新しいページが表示されてしまいます。 フレームごと書き換えるには、どうやって書けばよいのでしょう? <script language="javascript"> <!--// function ctrlwin() { window.opener.location.href="http://www.××.html"; window.close(); } //--> </script>

専門家に質問してみよう