Safari锚定链接不起作用

时间:2010-06-11 05:47:05

标签: html xhtml safari

我的html锚点如下。

<a name="template-8"/>
<h4 class="template" id="template-8">A title</h4>

据我所知,浏览器应跳转到具有匹配名称或id属性的元素。

当我输入网址http://my.site.com/templates#template-8 safari时,按预期跳过页面。

然而,当链接如下时,锚点什么都不做。 Chrome,Opera,IE7和Firefox都可以使用。

<a href="http://my.site.com/templates#template-8">A link</a>

Safari是5.0版本,这可能是一个safari bug吗?

6 个答案:

答案 0 :(得分:15)

问题是我在链接的页面中有一个重定向标题。

Opera,IE,Chrome,Firefox将把锚点带到新页面。然而,safari在重定向上失去了锚点。

如果您在使用safari锚时遇到问题,请禁用任何重定向。

答案 1 :(得分:10)

对我来说,我只需要改变

http://domain.com/page#myanchor 

http://domain.com/page/#myanchor

答案 2 :(得分:2)

我刚遇到同样的问题并在搜索时发现了你的帖子 - 显然你已经解决了这个问题,因为它已经回到了2010年,但我认为如果其他人发现这一点,我会发布我发现的内容。 :)

我正在使用htaccess将我的网址从mydomaincom / index.php重定向到mydomaincom /并发现我的导航在Safari中不起作用,因为我的href地址是index.php#值和Safari v5无法结转的地方锚链接。

我没有关闭我的重定向,而是将网址更改为指向mydomaincom / #value。这不仅适用于所有浏览器,但它也使我的页面更快(不确定如何,但现在将搜索它:))

答案 3 :(得分:1)

我看到有两个方面的问题,这不是原因(因为你已经发现了问题),但可能没有帮助:

  • 自动关闭<a>标记。您不能自行关闭应该包含结束标记的标记,它应该是:<a name="template-8"></a>
  • nameid属性共享相同的“命名空间”,因此nameid属性的值不能相同。过去10年中的所有浏览器都支持ID上的锚点,因此废弃了无用的链接标记。

答案 4 :(得分:0)

它与先前提出的解决方案不兼容,它对我来说可以通过以下方式使用javascript创建重定向。

amount

我留在这里,以防将来有人为您服务。

答案 5 :(得分:-1)

在Safari中修复锚标记。我这样做:

 <a href="#" class="btn">A tag</a>

在我的css文件中:

.btn{
  display:block;
  width:100%;
  height:100%;
}

重要的是出于某种原因,有时Safari需要将您的链接视为一个块,如果您创建一个列表,其中包含一些链接,它会很有用。 示例:

<ul>
    <li><a href="#" class="btn">A tag</a></li>
    <li><a href="#" class="btn">A tag</a></li>
</ul>

适用于Safari 6 +