Ссылка на перезагрузку текущей страницы

Возможно ли, чтобы нормальная ссылка указывала на текущее местоположение?

В настоящее время я нашел 2 решения, но один из них включает JavaScript, а в другом вы должны знать абсолютный путь к странице:

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

Есть ли способ сделать это без использования JavaScript или знания абсолютного пути?

Ответ 1

Я использовал:

<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 . в bar.html будет ссылаться на /foo/ а не на bar.html

Думайте об этом как о навигации по файловой системе в терминале; Вы никогда не можете cd в файл :)

РЕДАКТИРОВАТЬ 2:

Похоже, поведение использования href="." больше не так предсказуемо, и Firefox, и Chrome могли изменить то, как они справляются с этим. Я бы не стал полностью полагаться на свой исходный ответ, а вместо этого попробовал бы пустую строку и точку в разных браузерах для вашего конкретного использования и убедитесь, что вы получаете желаемое поведение.

Ответ 2

Ни один из других ответов не выдаст никаких значений запроса. Попробуйте

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

По общему признанию, это связано с javascript, но, если у ваших пользователей script нет, это довольно просто.

Ответ 3

Один способ использования javascript:

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

Ответ 4

Вы можете сделать это: <a href="">This page</a>

но я не думаю, что он сохраняет данные GET и POST.

Ответ 5

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

Ответ 6

<a href=".">refresh current page</a>

или если вы хотите передать параметры:

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

Ответ 7

используйте это для перезагрузки/обновления текущей страницы

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

Ответ 8

<a href="/">Clicking me refreshes the page</a>удаp >

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

Ответ 9

Нет никакого глобального способа сделать это, к сожалению, только с HTML. Вы можете попробовать сделать <a href="">test</a>, однако он работает только в некоторых браузерах.

Ответ 10

Полностью идемпотентный URL-адрес, который сохраняет путь, параметры и привязку.

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

он использует только немного крошечный бит JS.

EDIT: это не перезагружает страницу. Это ссылка, которая ничего не делает.

Ответ 11

Еще одно решение

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

Ответ 12

Я использую JS для отображения только div с определенным идентификатором на странице тегов на сайте jekyll. С помощью набора ссылок на одной странице вы увидите соответствующий элемент:

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>

Ответ 13

Хотя принятый ответ не работал у меня в IE9, это сделало:

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

Ответ 14

Я использую <a href="./">Link to same page</a>

Надеюсь, что это поможет

Ответ 15

Вы можете использовать форму для POST с тем же URL-адресом.

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

Это дает вам кнопку, которая обновляет текущую страницу. Это немного раздражает, потому что если пользователь нажмет кнопку обновления браузера, они получат сообщение do you want to resubmit the form.

Ответ 16

попробуй это

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

Ответ 17

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

Кажется, работает только если ваш сайт index.html, index.htm или index.php(любая страница по умолчанию).

Но кажется, что . - одно и то же и более приемлемое

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

Оба работают отлично на Chrome, когда домен как http://, так и https://

Ответ 18

<a href="/home" target="_self">Reload the page</a>

Ответ 19

Если вы используете шаблоны php/smarty, вы можете сделать что-то вроде этого:

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

Ответ 20

Просто добавьте target = "_ blank", и ссылка откроет новую страницу, сохранив исходную страницу.