- ベストアンサー
ボタンをクリックしたらページを更新
javascriptでボタンをクリックしたらページの更新をしたいです。 リロードかな?と思ったのですが、ボタンをクリックすると、そのページの一番上にいってしまうんです。 今見てる状態でブラウザの「更新」を押したような動作をして欲しいのですが、できるのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
更新前にスクロールの位置を取得して、更新後にスクロールの位置を更新前の位置に戻せば良いですね。 スクロールの位置を何処に保持しておくかは、お使いの環境に合わせて考えてください。 以下のような形でどうでしょう? <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>
その他の回答 (4)
- torakiyojp
- ベストアンサー率58% (25/43)
No.4に記したソースですが、reloadTest.htmlという名前で作成しました。 text.htmlとしたい場合は function fixReload(){ location.href = "reloadTest.html?beforeScrollTop="+document.getElementById("bodyObj").scrollTop; return false; } のreloadTest.htmlをtext.htmlに変えてください。
お礼
すいません、無事できました。 ありがとうございました!!
- caitsith_goo
- ベストアンサー率59% (28/47)
回答しても表示されないのでもう一度投稿します。 もし2重投稿になってしまったら申し訳ないです。 リロード+ページ内リンクは、 <input type="button" value="リロード" onClick="location.reload('#0604');"> でできますよ。
お礼
回答ありがとうございます。 早速このようにしてみました。 <INPUT TYPE="BUTTON" VALUE="アニメーション" onClick="location.reload('#0604');"> <A NAME="0604">KOKO</A> ページ内リンクはうまくいってるようですが、リロードが…。 どこか間違ってるでしょうか??
- caitsith_goo
- ベストアンサー率59% (28/47)
リロード+ページ内リンクでいいのなら <input type="button" value="リロード" onClick="location.reload('#0604');"> でできますよ。
- Link_Luke
- ベストアンサー率5% (1/19)
リロードについてのページですが知識があまりないのであってるかどうかはわかりません
お礼
回答ありがとうございます。 やっぱりどうしても希望する動作にならなかったので、 リロード+ページ内リンク、という方法はどうだろうと思いやってみました。 <A HREF="#0604" onClick="location.reload()">LINK</A> <A NAME="0604">KOKO</A><BR> としてみたところ、リロードのみ動いて、ページ内リンクは動作しませんでした。 両方を実現したい場合はどうしたらいいのでしょうか?
お礼
回答ありがとうございます。 そのままコピーして試してみたのですが、クリックを押すと、ファイル名がかわってしまうんです。 例えば「text.html」とした場合、 クリックをすると 「reloadTest.html」 となってしまいます。 このような場合はどうしたらいいでしょうか?