链接到重新加载当前页面

Tyi*_*ilo 162 html hyperlink

是否可以将正常链接指向当前位置?

我目前找到了2个解决方案,但其中一个包含JavaScript,另一个你必须知道页面的绝对路径:

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

有没有办法这样做,不使用JavaScript或知道绝对路径?

Mar*_*son 179

我一直在使用:

<a href=".">link</a>
Run Code Online (Sandbox Code Playgroud)

尚未找到无法按预期工作的案例和/或浏览器.

期间表示当前路径.您还可以使用它..来引用当前路径上方的文件夹,例如,如果您有此文件结构:

page1.html
folder1
    page2.html
Run Code Online (Sandbox Code Playgroud)

然后你可以page2.html写:

<a href="../page1.html">link to page 1</a>
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!

编辑:

我不确定行为是否已经改变,或者它是否总是如此,但Chrome(以及其他人)会将上述时段视为关于目录而不是文件.这意味着,如果你在http://example.com/foo/bar.html你真的在目录/foo/和的href的值href.将参考bar.html而不是/foo/

可以把它想象成在终端中导航文件系统; 你永远不能bar.html进入文件:)

  • 应该注意的是,虽然使用此方法不保留GET数据,但将其视为"硬重载".使用空的href值将保留GET数据,但清除哈希值(如#these).使用#或?因为href值会将"垃圾"添加到新URL.我发现使用句号是实现重新加载的最简洁方法. (24认同)
  • 这似乎只有在URL的路径组件以`/`结尾时才有效. (8认同)
  • 这种技术在mac chrome上对我不起作用.虽然使用"." 作为anhor,它的行为就像".."并链接到父页面.例如/ admin/stuff成为/ admin.其他人看到这种行为? (5认同)
  • 截至今天,这在Firefox或Chrome中不起作用.两个浏览器都使用href ="."引用父目录(而不是当前页面). (5认同)
  • 这个解决方案是错的.此外在Chrome中无法正常工作并指向父目录.您应该使用空的href作为@MarkusAmaltheaMagnuson建议 (3认同)

Sim*_*loy 132

其他答案都不会预先设置任何查询字符串值.尝试

<a href="javascript:window.location.href=window.location.href">
Run Code Online (Sandbox Code Playgroud)

不可否认,这确实涉及javascript,但是,除非您的用户禁用了脚本,否则这非常简单.

  • 对我不起作用(Google Chrome 32).我更喜欢<a href="javascript:location.reload();"> </a> (5认同)
  • 该解决方案不保留锚点 (5认同)
  • 我正在使用谷歌浏览器36.0.1985和javascript:window.location.href = window.location.href确实有效.location.reload()具有不幸的效果,如果用户希望在Firefox中刷新页面,则会提示用户,并且根据情况,可能无法提供所需的结果.有关更多讨论,请参阅http://stackoverflow.com/questions/2405117/difference-between-window-location-href-window-location-href-and-window-location. (3认同)

Vin*_*hni 69

使用javascript的一种方法:

<a href="javascript:window.location.reload(true)">Reload</a>
Run Code Online (Sandbox Code Playgroud)

  • 保留查询字符串和锚点(`?query = string#anchor`).大! (4认同)
  • 我有一个问题,当使用“window.location.reload”方法时,“true”参数真的应该用于解决这个问题吗?这将使其成为硬刷新,避免从缓存中提取数据,这在某些情况下可能是您想要的,但我认为在大多数情况下您会希望利用缓存,不是吗? (3认同)

Ste*_*hen 30

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

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

  • 不幸的是,它在IE中不起作用.来自:msdn.microsoft.com/en-us/library/cc848861%28v=vs.85%29.aspx - _如果HREF被指定为空值(href =""或href =),执行链接可能会显示包含当前文档的目录,或者它可能会生成错误,具体取决于文档和服务器环境中的其他元素._ (2认同)

Hat*_*ryx 13

<a href="<?php echo $_SERVER["REQUEST_URI"]; ?>">Click me</a>
Run Code Online (Sandbox Code Playgroud)

  • 我不使用PHP. (11认同)
  • 注意-1,可能不是你的情况下的解决方案(因为它是一个PHP解决方案)但我认为这是最干净的解决方案.这是因为它为href属性提供了有效值,它是最干净的.如果可能,请避免使用javascript 所以+1. (3认同)
  • 非常有帮助。为什么这会遭到反对?原来的问题也没有提到 js,这里的大多数 q 都引用了 JS... (2认同)
  • @endemic 认为 javascript 是“正常”而 php 不是,这是毫无意义的观点。OP实际上将正常定义为不包含javascript,并且不使用绝对路径。有趣的是,大多数答案都是用 JavaScript 编写的。 (2认同)

小智 9

<a href=".">refresh current page</a>
Run Code Online (Sandbox Code Playgroud)

或者如果你想传递参数:

<a href=".?curreny='usd'">refresh current page</a>
Run Code Online (Sandbox Code Playgroud)


kau*_*hik 9

使用它来重新加载/刷新当前页面

<a href="#" onclick="window.location.reload(true);">
Run Code Online (Sandbox Code Playgroud)


Tho*_*lds 7

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

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

  • 这仅适用于您在index.html或其他根文档/网址上 (3认同)

小智 7

<a href="">Refresh!</a>
Run Code Online (Sandbox Code Playgroud)

保留href=""空白,它将刷新页面。
如果使用表单传递某些信息也适用。

  • 这应该被标记为正确答案/正确答案。 (2认同)

Mic*_*lsh 5

不幸的是,没有全球性的方法只能使用HTML。您可以尝试执行此操作,<a href="">test</a>但这仅在某些浏览器中有效。


Joh*_*kel 5

完全幂等的URL,用于保留路径,参数和锚点.

 <a href="javascript:"> click me </a>
Run Code Online (Sandbox Code Playgroud)

它只使用了一小部分JS.

编辑:这不会重新加载页面.这是一个什么都不做的链接.