プロが教える店舗&オフィスのセキュリティ対策術

javascriptでボタンをクリックしたらページの更新をしたいです。

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

A 回答 (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>
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

そのままコピーして試してみたのですが、クリックを押すと、ファイル名がかわってしまうんです。
例えば「text.html」とした場合、
クリックをすると
「reloadTest.html」
となってしまいます。

このような場合はどうしたらいいでしょうか?

お礼日時:2004/09/27 11:33

No.4に記したソースですが、reloadTest.htmlという名前で作成しました。


text.htmlとしたい場合は

function fixReload(){
location.href = "reloadTest.html?beforeScrollTop="+document.getElementById("bodyObj").scrollTop;
return false;
}

のreloadTest.htmlをtext.htmlに変えてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/09/27 11:54

回答しても表示されないのでもう一度投稿します。


もし2重投稿になってしまったら申し訳ないです。

リロード+ページ内リンクは、
<input type="button" value="リロード" onClick="location.reload('#0604');">
でできますよ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

早速このようにしてみました。

<INPUT TYPE="BUTTON" VALUE="アニメーション" onClick="location.reload('#0604');">

<A NAME="0604">KOKO</A>

ページ内リンクはうまくいってるようですが、リロードが…。
どこか間違ってるでしょうか??

お礼日時:2004/09/24 08:51

リロード+ページ内リンクでいいのなら


<input type="button" value="リロード" onClick="location.reload('#0604');">
でできますよ。
    • good
    • 0

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



参考URL:http://www.openspc2.org/JavaScript/library/etc/r …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

やっぱりどうしても希望する動作にならなかったので、
リロード+ページ内リンク、という方法はどうだろうと思いやってみました。


<A HREF="#0604" onClick="location.reload()">LINK</A>

<A NAME="0604">KOKO</A><BR>

としてみたところ、リロードのみ動いて、ページ内リンクは動作しませんでした。
両方を実現したい場合はどうしたらいいのでしょうか?

お礼日時:2004/09/23 17:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!