【问题标题】:Relative URL containing just the querystring仅包含查询字符串的相对 URL
【发布时间】:2013-03-08 10:01:50
【问题描述】:

我在页面中有一些链接,只需要更改当前 URL 的查询字符串部分。

例如当前页面是:

http://demo.com/bigreport?page=13

我想链接到

http://demo.com/bigreport?page=14

我可以使用<a href="?page=14">Next</a> 作为这个的相对链接吗?

我惊讶地发现它可以在 Chrome 中运行。我从未在任何地方看到过它的文档或提及,所以我很想知道是否有人使用它,以及是否有更广泛的浏览器支持。

【问题讨论】:

  • 罗斯很棒,这种技术可以让某些烦人的小问题变得不那么烦人。

标签: html url query-string


【解决方案1】:

进一步研究表明,<a href="?page=14">Next</a>一个有效的相对 URL。

它被记录为 WHATWG 的 URL 规范的一部分 http://url.spec.whatwg.org/#relative-state

新 URL 将继承基本 URL 的方案、主机、端口和路径。

经过测试可以工作:

  • IE 7

【讨论】:

  • 注意:如果您的<head> 中有 <base href="/"> 则不起作用(经过大量挠头后才知道)
【解决方案2】:

<a href="?page14">Next</a> 有效,因为浏览器将其解释为相对 URL。类似于在您的网站上链接图片的工作方式<img src="logo.gif"/> 相对 URL 以这种方式工作(链接相对于当前页面),您不需要使用完整的绝对 URL。

浏览器长期以来一直支持此功能。人们可能没有意识到它,因为浏览器会自动处理它。

【讨论】:

  • 谢谢 - 我已经看到了相对于当前路径 (foo/bar.html)、主机 (/foo/bar.html) 甚至协议 (://demo.com/foo) 的 URL /bar.html),但绝不是查询字符串,所以我很想知道这是否是标准的一部分并得到广泛支持。
  • 查询字符串与任何 URI 没有区别。
猜你喜欢
  • 2011-05-14
  • 2011-09-28
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 2016-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多