我的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吗?
答案 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>
。name
和id
属性共享相同的“命名空间”,因此name
和id
属性的值不能相同。过去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 +