現在のページを再読み込みするためのリンク


175

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

私は現在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を使用したり、絶対パスを知らずに、これを行う方法はありますか?

回答:


198

私は使用しています:

<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/にいるhref場合に、.inの値がでbar.html/foo/なく、bar.html

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

編集2:

使用の動作はhref="."予測できなくなっているようです。FirefoxとChromeの両方で、これらの処理方法が変更された可能性があります。私は元の回答に完全に依存するのではなく、特定の用途のために空の文字列とピリオドの両方をさまざまなブラウザーで試して、希望する動作が得られることを確認してください。


25
このメソッドではGETデータが保持されないことに注意してください。「ハードリロード」と見なしてください。空のhref値を使用すると、GETデータは保持されますが、ハッシュ値はクリアされます(#theseなど)。#または?href値は新しいURLに「ゴミ」を追加するため。リロードを達成するには、ピリオドを使用するのが最もクリーンな方法であることがわかりました。
Markus Amalthea Magnuson 2012

5
このテクニックはMac Chromeでは機能しません。「。」を使用しますが anhorとして、「..」のように動作し、親ページにリンクします。たとえば、/ admin / stuffは/ adminになります。この動作を見ている人はいますか?
Zac

3
この解決策は間違っています。また、Chromeでは機能せず、親ディレクトリをポイントします。@MarkusAmaltheaMagnusonが提案するように空のhrefを使用する必要があります
coorasse 2013

8
これは、URLのパスコンポーネントがで終わる場合にのみ機能するよう/です。
コス

6
現在のところ、これはFirefoxまたはChromeでは機能しません。どちらのブラウザーも、href = "。"を使用して(現在のページではなく)親ディレクトリを参照します。
jtubre 2017年

135

他の答えはどれも、クエリ文字列の値を先取りしません。試す

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

確かにこれにはJavaScriptが必要ですが、ユーザーがスクリプトを無効にしていない限り、これは非常に簡単です。


5
私には機能しません(Google Chrome 32)。私は<a href="javascript:location.reload();"> </a>を好む
ガブリエル14

3
Google Chrome 36.0.1985を使用していますが、javascript:window.location.href = window.location.hrefは機能します。location.reload()は、Firefoxでページを更新したい場合にユーザーにプロンプ​​トを表示するという残念な効果があり、シナリオによっては、望ましい結果が得られない場合があります。詳細については、stackoverflow.com / questions / 2405117 /…を参照してください。
Simon Molloy、2014

1
ルーティングで角度を使用しています。これは私にはうまくいきませんでした。ただし、これは機能します-> <a href="javascript:"> click me </a>
John Henckel 2015年

jsが無効になっている場合はどうなりますか?

5
このソリューションではアンカーが保持されません
thomas.winckell 2017

77

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

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

4
クエリ文字列とアンカーを保持します(?query=string#anchor)。すごい!
analog-nico 2016年

スクロール位置も保持されているので、この回答を使用することになりました。リロードを擬似「元に戻す」ボタンとして使用している場合に役立ちます。
イグノサウルス2017年

このソリューションは、Reactクライアントで機能します
Andrius

これをHTML構文で使用する方法について詳しく説明していただけますか?
Joanna Mikalai

私は質問がありtrueます、window.location.reloadメソッドを使用するときに、この問題に対してパラメーターは本当に何をするべきですか?これにより、キャッシュからのプルを回避するハードリフレッシュが行われます。これは、状況によっては必要な場合がありますが、ほとんどの状況では、キャッシュを利用したいと思いませんか。
スティーブンMアービング

31

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

しかし、GETおよびPOSTデータが保持されるとは思いません。


3
残念ながら、IEでは機能しません。From:msdn.microsoft.com/en-us/library/cc848861%28v=vs.85%29.aspx-HREF が空白の値(href = ""またはhref =)として指定されている場合、リンクを実行すると、現在のドキュメントを含むディレクトリ、またはドキュメント内の他の要素とサーバー環境によっては、エラーを生成する可能性があります。
Bohdan Lyzanets 2013年

12
<a href="<?php echo $_SERVER["REQUEST_URI"]; ?>">Click me</a>

12
PHPを使用していません。
Tyilo 2013

3
-1はあなたの場合の解決策ではないかもしれませんが(phpソリューションであるため)、ここで最もクリーンな解決策だと思います。これは、href属性に有効な値を与えるため、最もクリーンです。可能であればJavaScriptを避けます。だから+1。
rofavadeka 2013年

tyはとても役に立ちました。なぜこれが不評になるのですか?元の質問ではjsも言及されておらず、qの大部分はJSを参照しています...
Andrew

@Andrew元の質問は#htmlおよび#hyperlinkでタグ付けされています。確かに「現在の場所を指す通常のリンク」は信じられないほどあいまいな説明ですが、クライアント側のみのソリューションを探すものとして合理的に解釈できると私は確信しています。PHPによってhrefが入力されるアンカーは、「通常のリンク」ではなく、PHPコードです。
風土病、

@endemic javascriptは「正常」であり、phpはそうではないことを示唆することは無意味な意見です。OPは実際には、JavaScriptを含まず、絶対パスを使用しないものとして、通常を定義します。興味深いことに、答えのほとんどはJavaScriptです。
Andrew

10

これを使用して現在のページを再読み込み/更新します

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

または使用

<a href="">refresh</a>


7

<a href="https://stackoverflow.com/">Clicking me refreshes the page</a>

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


3
これは、index.htmlまたはその他のルートdoc / urlを使用している場合にのみ機能します
Stephen

@Stephenもちろん。あなたはまったく正しい。どうやら私は思ったより錆びている。私はそれを本当に速くテストし、たまたまルートにいた。
トーマスシールズ

urlが次のような場合に非常にうまく機能します。/ blablabla一方。私を元に戻すでしょう。
オーガスティンリーディンガー2013年

6

残念ながらHTMLだけでこれを行うグローバルな方法はありません。試してみることができますが<a href="">test</a>、一部のブラウザでのみ機能します。


IEでは機能しません。From:msdn.microsoft.com/en-us/library/cc848861%28v=vs.85%29.aspx-HREF が空白の値(href = ""またはhref =)として指定されている場合、リンクを実行すると、現在のドキュメントを含むディレクトリ、またはドキュメント内の他の要素とサーバー環境によっては、エラーが生成される場合があります。
Bohdan Lyzanets 2013年

1
私がテストしたところ、すべての主要な最新ブラウザ(Chrome、Firefox、Edge、Opera、Safari)で動作します
ドナルドダック

5

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

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

それはほんの少しのJSを使用するだけです。

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


@FranciscoCorralesMorales、申し訳ありませんが、質問を誤解しているようです。OPは何もしないリンクを作ろうとしていると思った。しかし今、私はOPが現在のページをリロードするリンクを望んでいることがわかります。(編集します)。
John Henckel 2016年

このコードスニペットをお寄せいただきありがとうございます。すぐに役立つ情報が得られる場合があります。適切な説明は、なぜこれが問題の優れた解決策であるを示すことによって教育的価値を大幅に改善し、同様の質問ではあるが同一ではない質問を持つ将来の読者にとってより役立つでしょう。回答を編集して説明を追加し、適用される制限と前提を示してください。
Toby Speight 2017年


2

受け入れられた回答はIE9では機能しませんでしたが、これは機能しました:

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

1
クエリ文字列パラメータを保持することに興味がある場合、これはうまくいきません。
WynandB 2015

1
@WynandBは正しいです。これはすべてのGETおよびPOSTパラメータを破棄します。それがあなたが望むものである場合、またはあなたが気にしない場合、このトリックはうまくいきますが。
hanshenrik 2017年

2

もう1つのソリューション

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

良い解決策!このメソッドの小さなヒントの1つは、デフォルトのパラメーターが0であるため、リロードする場合はhistory.go()、引数なしで次のように書くだけです。
スティーブンMアービング

2
<a href="">Refresh!</a>

ままhref=""空白をし、それがページを更新します。
一部の情報がフォームを使用して渡された場合にも機能します。


0

私は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>

0

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

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

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


0

この問題を解決
するためにHTMLを使用しています。

<a href="page1.html"> Link </a>

* page1.html->作業中のファイル(現在のHTMLファイル)の名前を入力します


投稿を編集してください。使用しているプログラミング言語、コードの実装方法などは明確ではありません。
Roee Anuar

この作業にはHTMLを使用しました。
Ayush Kumar

-1
<a href="/">Same domain, just like refresh</a>

Webサイトがindex.html、index.htm、またはindex.php(デフォルトのページ)である場合にのみ機能するようです。

しかし、それ.は同じことであり、より受け入れられているようです

<a href=".">Same domain, just like refresh, (more used)</a>

クロームの作業完璧な両方のドメインは両方のときhttp://https://


-2

<a href="https://stackoverflow.com/home" target="_self">Reload the page</a>


問題は、URLがわからない場合です... target = "_ self"は省略できます
Hafenkranich

-3

php / smartyテンプレートを使用している場合、次のようなことができます。

<a href="{{$smarty.server.REQUEST_URI}}{if $smarty.server.REQUEST_URI|strstr:"?"}&{else}?{/if}newItem=1">Add New Item</a>

-4

target = "_ blank"を追加するだけで、リンクは元のページを保持したまま新しいページを開きます。


あなたが言うように、これはhref新しいウィンドウ/タブの属性で指定されているページを開くだけです。これは実際の質問には決して答えません。
フィリップストラトフォード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.