web-dev-qa-db-ja.com

現在のページをリロードするためのリンク

現在の場所を指す通常のリンクを持つことは可能ですか?

私は現在2つの解決策を見つけましたが、そのうちの1つはJavaScriptを含み、もう1つはあなたがページへの絶対パスを知る必要があります:

<a href="#" onclick="window.location.reload(true);">1</a>
<a href="/foobar/">2</a>
<a href="#">3 (of course not working)</a>

JavaScriptを使わずに絶対パスを知らずにこれを行う方法はありますか?

147
Tyilo

私は使っています:

<a href=".">link</a>

意図したとおりに動作しないケースやブラウザがまだ見つかっていません。

ピリオドは現在のパスを意味します。たとえば、次のようなファイル構造になっている場合は、..を使用して現在のパスより上のフォルダを参照することもできます。

page1.html
folder1
    page2.html

page2.htmlで書くことができます:

<a href="../page1.html">link to page 1</a>

それが役立つことを願っています!

編集:

振る舞いが変わったのか、それともいつもそうだったのかはわかりませんが、Chrome(そしておそらく他の人も)はピリオドをファイルではなくディレクトリとして扱います。これは、あなたがhttp://example.com/foo/bar.htmlにいる場合、あなたは本当に/foo/ディレクトリにいて、.bar.htmlhref値は/foo/ではなくbar.htmlを参照することを意味します。

ターミナル内のファイルシステムをナビゲートすると考えてください。 cdをファイルに入れることはできません:)

編集2:

href="."を使用した場合の動作はもう予測できないようです。FirefoxとChromeの両方でこれらの処理方法が変更された可能性があります。私は最初の答えに完全に頼るのではなく、空の文字列とピリオドの両方を別のブラウザで試してみて、目的の動作が得られるようにします。

他の答えのどれもどんなクエリ文字列値もpreseしません。やってみる

<a href="javascript:window.location.href=window.location.href">

確かにこれはjavascriptを含みますが、あなたのユーザがスクリプトを無効にしていない限り、これはかなり簡単です。

127
Simon Molloy

JavaScriptを使用する1つの方法:

<a href="javascript:window.location.reload(true)">Reload</a>
65
Vinay Sahni

あなたはこれを行うことができます:<a href="">This page</a>

しかし、それはGETとPOSTデータを保存するとは思わない.

28
Stephen
<a href="<?php echo $_SERVER["REQUEST_URI"]; ?>">Click me</a>
14
Hatzegopteryx
<a href=".">refresh current page</a>

パラメータを渡したい場合は、

<a href=".?curreny='usd'">refresh current page</a>
9

現在のページをリロード/リフレッシュするためにこれを使用してください

<a href="#" onclick="window.location.reload(true);">
8
kaushik

<a href="/">Clicking me refreshes the page</a>

<a href="?">Click Me To Reload the page</a>

7
Thomas Shields

HTMLだけでこれを行う世界的な方法は残念ながらありません。あなたは<a href="">test</a>をやってみることができますが、それはいくつかのブラウザでしか動作しません。

4
Michael Walsh

パス、パラメータ、およびアンカーを保持する完全にべき等URL。

 <a href="javascript:"> click me </a>

ほんの少しのJSしか使用していません。

EDIT:これはページをリロードしません。何もしないリンクです。

4
John Henckel

もう一つの解決策

<a href="javascript:history.go(0)">Reload</a>
2
SashaPinsk

受け入れられた答えがIE9で私のために働かなかった間、これはしました:

<a href="?">link</a>
1
Mark

私はJSを使ってjekyllサイトのタグページに特定のIDを持つdivだけを表示します。同じページ内の一連のリンクで、対応する要素を表示します。

function hide_others() {
    $('div.item').hide();
    selected = location.hash.slice(1);
    if (selected) {
        $('#' + selected).show();
    }
    else {
    $('div.item').show();
    }
}

リンクは次のようなリンクを使用します。

<a href="javascript:window.location.href='/tags.html#{{ tag[0] }}-ref'; hide_others()">{{ tag[0] }}</a>
1
david villa

フォームを使用して、同じURLにPOSTを実行できます。

 <form  method="POST" name="refresh" id="refresh">
 <input type="submit" value="Refresh" />
 </form>

これにより、現在のページを更新するボタンが表示されます。ユーザーがブラウザの更新ボタンを押すと、do you want to resubmit the formというメッセージが表示されるので、少々面倒です。

0
Tim Bray

これを試してください

<a href="javascript:window.location.href=window.location.href">
0
Love Kumar