Ссылка на перезагрузку текущей страницы
Возможно ли, чтобы нормальная ссылка указывала на текущее местоположение?
В настоящее время я нашел 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", и ссылка откроет новую страницу, сохранив исходную страницу.