是否有可能有一个正常的链接指向当前位置?

我目前找到了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或知道绝对路径?


<a href="/">单击me刷新页面</a>

< a href = "吗?">点击我重新加载页面</a> .


你可以这样做:<a href=""> this page</a> .

但我认为它不会保留GET和POST数据。


不幸的是,只有HTML没有全局的方法来做到这一点。你可以尝试做<a href="">test</a>,但它只适用于某些浏览器。


我一直在用:

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

还没有找到一个案例和/或浏览器,它不像预期的工作。

Period表示当前路径。你也可以用..要引用当前路径上面的文件夹,例如,如果你有这样的文件结构:

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可能已经改变了他们处理这些的方式。我不会完全依赖于我最初的答案,而是在不同的浏览器中尝试空字符串和句点,以满足您的特定使用,并确保您获得所需的行为。


其他答案都不会保留任何查询字符串值。试一试

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

不可否认,这涉及到javascript,但除非你的用户禁用了脚本,这是相当简单的。


下面是一个适用于PHP的方法:

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

我使用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>

虽然在IE9中接受的答案不适合我,但这个却可以:

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

使用JavaScript的一种方法是:

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

<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://


还有一个解决方案

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

<a href=“/home” 目标=“_self”>重新加载页面</a>


完全幂等的url,保留路径,参数和锚。

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

它只使用了一小部分JS。

编辑:这不会重新加载页面。它是一个没有任何作用的链接。


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

或者如果你想传递参数:

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

您可以使用表单对相同的URL进行POST。

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

这为您提供了一个刷新当前页面的按钮。这有点烦人,因为如果用户按下浏览器刷新按钮,他们会得到一个是否要重新提交表单的消息。


用于重载/刷新当前页面

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

或使用

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

只要添加target="_blank",链接就会打开一个新的页面,保持原来的页面。


如果你正在使用php/smarty模板,你可以这样做:

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

试试这个

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

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

保留href=""为空,它将刷新页面。 如果使用表单传递一些信息,也可以工作。


我正在使用HTML来解决这个问题 使用:

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

*page1.html ->输入您正在处理的文件的名称(您当前的HTML文件)


对我来说,之前这里提供的答案是打开一个新的标签/窗口(可能是因为我的浏览器设置)。但是我想在同一页面上重新加载/刷新。所以,上面的解决方案对我来说并不管用。

然而,好消息是,以下两种方法中的任何一种都对我有用。

<一个onclick = " javascript: window.location.reload ();“刷新> < / > <一个onclick = " window.location.href =这" > < / >刷新


两个选择:

<a href="https:">link</a>
<a href="">link</a>

在这两种情况下,浏览器将相对于当前URL解析链接,导致当前URL排除了#片段。

注:

https:如果您使用的是https协议(匹配任何协议) 对于其他人来说,使用空URL可能是一个错误,https:可能更明确。 这不会重放POST请求。


如果你不关心保存查询字符串值,那么一个简单的选择是:

<a href > Link </a>