2013-03-08 49 views
30

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

E.g.当前页面:

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

,我要链接到

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

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

我很惊讶地发现它可以在Chrome中使用。我从来没有见过它在任何地方记录或提及,所以我很想知道是否有人使用它,以及是否有更广泛的浏览器支持。

+0

大斑罗斯,这种技术使得某些恼人的小问题更烦人。 – chim 2015-02-24 16:38:55

回答

38

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

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

新的URL将继承基础URL的方案,主机,端口和路径的一部分。

测试上下工夫:

  • IE 7
+0

我也想知道这件事 – Aris 2014-02-20 07:28:23

7

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

浏览器长期以来一直支持这一点。人们可能不知道它,因为浏览器会自动处理它。

+2

谢谢 - 我已经看到相对于当前路径(foo/bar.html),主机(/foo/bar.html)甚至协议(://demo.com/foo/bar.html)的URL,但从来没有查询字符串,所以我很想知道这是否是标准的一部分并且得到广泛支持。 – 2013-03-08 10:10:16

+0

查询字符串与任何URI都没有不同。 – sweetamylase 2013-03-08 10:14:11