【问题标题】:Link to current page without query string链接到没有查询字符串的当前页面
【发布时间】:2010-12-03 04:40:55
【问题描述】:

我知道做链接有很多技巧,例如<a href="?query=string"> 将在附加查询字符串后链接到当前页面。有没有办法在不输入文件名的情况下删除查询字符串后链接回当前页面?

例如,在页面foo.php?q=3,我想链接到foo.php。有没有快捷方式来做到这一点?该文件将被重命名多次,所以我不想输入一堆链接,然后再编辑它们。

编辑: 尽管这些是 PHP 文件,但我试图避免针对这个特定问题的服务器端解决方案。

【问题讨论】:

  • 附注对于任何考虑锚点的人......显然社区非常不喜欢它们,以至于任何将它们作为解决方案发布的人都会被否决到尖括号的深渊

标签: html


【解决方案1】:
href="?"

不是完全你所追求的 - 最后还有一个问号 - 但在功能上是等效的。

【讨论】:

  • 尽管这已经过时了,但我还是赞成并发表评论,因为它仍然相关,而且它是唯一的非服务器端方式(我可以说),它适用于扩展和无扩展名的 URL。
  • @trnelson 感谢 Javascript,这不是唯一的客户端方法,请在此处查看我的答案:stackoverflow.com/a/50759516/2161614
【解决方案2】:

您可以使用<a href="."> 重新加载当前页面,删除查询字符串。

请参阅this 以获得更详细的答案。

【讨论】:

  • 不幸的是,这不适用于无扩展名的 URL。这是我在遇到此问题之前专门使用的技术。
【解决方案3】:

我知道这已经快 10 年了,但是另一种实现客户端的方法是使用 Javascript,例如

<a href="javascript:window.location.href=/^[^?]+/.exec(window.location.href)[0]">Anchor</a>

不是很漂亮,但点击时确实会产生一个干净的 URL。

【讨论】:

  • 太棒了!我知道有一种方法可以使用javascript: href 来做到这一点,但我不确定如何做到这一点。
【解决方案4】:

您是否想要一个等效于$_SERVER['PHP_SELF'] 的客户端?扩展后总是链接到文件而没有额外内容的东西?

我不确定这是否适用于所有浏览器,但它在 Firefox 3.5 中效果很好:

<a href="">Foo</a>

【讨论】:

  • &lt;a href=""&gt;Foo&lt;/a&gt; 不幸的是,它在 IE 中不起作用。来自:msdn.microsoft.com/en-us/library/cc848861%28v=vs.85%29.aspx - 如果将 HREF 指定为空白值(href="" 或 href=),则执行链接可能会显示包含当前文档的目录,或者可能会产生错误,具体取决于其他元素在文档和服务器环境中。
【解决方案5】:

您可以链接到您所在的当前页面:

<a href="#">blah</a>

【讨论】:

  • 这不会在所有浏览器中对服务器执行新请求。
  • 我认为它不会在任何浏览器中执行新请求。
  • 还请记住,它会滚动到页面顶部——这一事实几乎被普遍遗忘。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-07
  • 2023-03-15
  • 2016-08-12
  • 1970-01-01
相关资源
最近更新 更多