0

我们有一些生成的页面,其 URL 包含参数,例如http://example.com/page.do?param1=hello。这些页面内部包含命名锚点,<a name="here">like this</a>。并且有相应的链接引用了命名的锚点,<a href="#here">like this</a>。今天大多数人称这些为“跳过链接”。

单击跳过链接应导致浏览器创建并遵循与原始 URL 匹配的 URL,并在末尾添加命名的锚点: http ://example.com/page.do?param1=hello#here

在 Firefox 和 IE 上,这可以正常工作。在 Chrome、Safari 和其他基于 WebKit 的浏览器上,参数丢失,导致http://example.com/page.do?#here对我们的站点无效,只会导致 404 错误。

有趣的是,如果您手动将完整链接放入地址栏中并按 Enter,它的行为正常。

我用谷歌搜索了一段时间,看到很多关于 WebKit 存在跳过链接问题的讨论,但没有一个与这里丢失参数的情况相匹配。

这种参数丢失是一个已知的错误吗?有没有人看到解决方法?

4

1 回答 1

0

我遇到了同样的问题。据我所知,这与使用这样的元标记有关:<base href="http://example.com" />. 一旦设置好我的链接指向example.com#foo而不是example.com?foo=bar#foo.

知道我发现了这个问题。所以锚标记行为是一个已知的事情: 是否推荐使用 <base> html 标记?

由于我无法删除基本标记,我将尝试使用 JavaScript 来处理它。

于 2013-08-09T10:17:26.360 回答