• ベストアンサー

ボタンをクリックしたらページを更新

javascriptでボタンをクリックしたらページの更新をしたいです。 リロードかな?と思ったのですが、ボタンをクリックすると、そのページの一番上にいってしまうんです。 今見てる状態でブラウザの「更新」を押したような動作をして欲しいのですが、できるのでしょうか?

  • w-inty
  • お礼率72% (1169/1618)

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

  • ベストアンサー
回答No.4

更新前にスクロールの位置を取得して、更新後にスクロールの位置を更新前の位置に戻せば良いですね。 スクロールの位置を何処に保持しておくかは、お使いの環境に合わせて考えてください。 以下のような形でどうでしょう? <html> <head> <title>リロード</title> <script language="JavaScript"> <!-- function init(){ document.getElementById("bodyObj").scrollTop = location.search.split("=")[1]; return false; } function fixReload(){ location.href = "reloadTest.html?beforeScrollTop="+document.getElementById("bodyObj").scrollTop; return false; } // --> </script> </head> <body id="bodyObj" onLoad="init();"> 一番上 <br> <br> <br> (以下<br>タグ続く) <input type="button" value="リロード" onClick="fixReload();"> <br> <br> <br> <br> <br> <br> <br> <br> </body> </html>

w-inty
質問者

お礼

回答ありがとうございます。 そのままコピーして試してみたのですが、クリックを押すと、ファイル名がかわってしまうんです。 例えば「text.html」とした場合、 クリックをすると 「reloadTest.html」 となってしまいます。 このような場合はどうしたらいいでしょうか?

その他の回答 (4)

回答No.5

No.4に記したソースですが、reloadTest.htmlという名前で作成しました。 text.htmlとしたい場合は function fixReload(){ location.href = "reloadTest.html?beforeScrollTop="+document.getElementById("bodyObj").scrollTop; return false; } のreloadTest.htmlをtext.htmlに変えてください。

w-inty
質問者

お礼

すいません、無事できました。 ありがとうございました!!

回答No.3

回答しても表示されないのでもう一度投稿します。 もし2重投稿になってしまったら申し訳ないです。 リロード+ページ内リンクは、 <input type="button" value="リロード" onClick="location.reload('#0604');"> でできますよ。

w-inty
質問者

お礼

回答ありがとうございます。 早速このようにしてみました。 <INPUT TYPE="BUTTON" VALUE="アニメーション" onClick="location.reload('#0604');"> <A NAME="0604">KOKO</A> ページ内リンクはうまくいってるようですが、リロードが…。 どこか間違ってるでしょうか??

回答No.2

リロード+ページ内リンクでいいのなら <input type="button" value="リロード" onClick="location.reload('#0604');"> でできますよ。

回答No.1

リロードについてのページですが知識があまりないのであってるかどうかはわかりません

参考URL:
http://www.openspc2.org/JavaScript/library/etc/reload/index.html
w-inty
質問者

お礼

回答ありがとうございます。 やっぱりどうしても希望する動作にならなかったので、 リロード+ページ内リンク、という方法はどうだろうと思いやってみました。 <A HREF="#0604" onClick="location.reload()">LINK</A> <A NAME="0604">KOKO</A><BR> としてみたところ、リロードのみ動いて、ページ内リンクは動作しませんでした。 両方を実現したい場合はどうしたらいいのでしょうか?

関連するQ&A

  • 「リロード」ボタンをページ内に作りたい

    つまりは、「ブラウザのリロードボタンをクリック」を ページ内で実現させたいのです。 ex.あるページのある部分をクリックするとそのページが   リロードされる。 こんなことってHTML文で可能なのでしょうか?

    • ベストアンサー
    • HTML
  • 「更新ボタン」って何処に?

    初歩的な質問で恐縮です。インターネット等での予約が殺到している時「システムに接続できないからといって、ブラウザを閉じたりせずに、更新ボタンをクリックして下さい…」とありましたが更新ボタンとは何でしょうか?私の場合、仕方ないので「戻る」をクリックして普通のページに戻るまで、さかのぼって行って改めて接続を試みていましたが他に良い方法があるのでしょうか?親戚の子に頼まれて何とか予約をとってあげたいと思っています。よろしくお願い致します。

  • webページの一部をリロード

    あるhtmlページに、Javascriptを設置しているとして、 そのJavascriptの部分のみ、 一定の秒数がたつと自動でリロードされるようにしたいです。 iframeを使わずにできますか? Ajaxとかいうものでできそうですが、 よく解らないし、ブラウザによって動作したりしなかったりするようなので、 どうかな、と思っています。

    • ベストアンサー
    • HTML
  • 1回だけリロードしたい

    開いたときに1度だけリロードさせたいのですが、たのページを参考に <script language="javascript"> <!-- if ( location.search.indexOf("1") == -1 ) { setTimeout("_reload()",1000); } function _reload() { location.href = location.href + "?1"; } //--> </script> を入れてみたのですが、リロードはされるものの、いわゆるブラウザの「更新」ボタンとは違うらしく、POSTで送られてきたデータを破棄した状態でリロードされるため、データの取得ができず困っています。 データを保持したままのリロード、つまりブラウザの「更新」ボタンのようなリロードを1度だけさせるにはどうしたらよいか教えてください。

  • 携帯サイトの更新ボタンの作成方法

    携帯のサイトをHTMLで作成しました。 更新ボタンを作ろうと思い、 <a herf="ホームページ名">ページ更新</a>としました。 ドコモやソフトバンクはうまくいくようですが、 auはキャッシュのためかリロードできません。 javascriptは使えないので、ほかに方法があったら教えてください。 参考URLでもかまいません。

    • ベストアンサー
    • HTML
  • ログインボタンをクリックしてもページが切り替わらない。

    一部のページでログインボタンとかをクリックしてもページが切り替わらなくなってしまいました。クリックしてもまったく無反応なんです。エラーの表示とか何も出ません。 例えば教えて!gooの検索の横の「教えて!」ボタンもそんな感じで、検索のところに文字いれてクリックしても全然反応がありません。ちなみに「教えて!」のところにカーソルを持っていったらタスクバー(?)のところにjavascript:querySubmit('o');って出ます。最後の変な顔文字みたいのは何!?って感じです。 OSはWindows98です。

  • ブラウザの「戻る」ボタンを押した時にリロードさせる

    ブラウザの「戻る」ボタンを押して前のページに戻った時に1回だけページを リロードさせたいのですが、IEでは下記のようにすれば上手く出来ました。 <script type="text/javascript"> <!-- window.onunload = function(){location.reload();} --> </script> しかしながら、上記では他のブラウザ(Firefox・Opera・Safai・Google Chrome等)では リロードされません。 全てのブラウザで上手くリロードさせる方法はないでしょうか。 宜しくお願い致します。

  • Webページで最新のJavaScriptを読み込みたい

    Webページで最新のJavaScriptを読み込みたい Visual Studio 2008 でWebページを作成しています。 今、AというページとBというページがあり、それぞれのページにボタンを設け、 Response.Redirectで行き来できるようにしています。 それぞれのページは、  B:現在の状況に応じてJavaScript内に配列を作成  A:Bで作成したJavaScriptを読み込み、ボタンのクリックで内容を表示 という機能を持たせています。 今、BでJavaScriptを作成し、Response.RedirectでAのページに行くと、前の (キャッシュされている?)内容が表示されます。 →ここで、ブラウザの「更新」ボタンをクリックすると、最新の内容になります。 切り替わったときに、最新の状態のJavaScriptを読ませようと、  A.aspx?data=xxxxx (xxxxxは乱数)としましたが、状況は同じでした。 Aのページで、いつでも最新のJavaScriptを読み込ませることはどうすればでき るのしょうか。

  • 更新したページがブラウザでは更新されない…

    ウェブページの更新がブラウザ(Firefox)で反映されず困っています。 スーパーリロードも試しましたが効果なし、キャッシュを削除しても解決には至りませんでした。 この場合、他にどういった原因が考えられますでしょうか。 なお、1度パソコンをシャットダウン後に開くとページは更新されます。 解決方法がわかる方、ご回答いただけると助かります。

  • 素朴なフレーム更新の疑問

    上下に分割したフレームページを作成した時、下の部分だけ表示されるものをかえていったとしても、フレームごと呼び出ししていないので、ブラウザのアドレスバーには最初に呼び出したURLがそのまま表示されていますよね。 なのにブラウザの更新ボタンをクリックした時には表示されているURL、つまり最初のページに戻らず、今あるページがリロードされるのでしょうか? これはHTMLやブラウザのバージョンが関係しているものではなく、もっと他の所に答えがあるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう