Safari锚定链接不起作用

问题描述 投票:6回答:6

我的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吗?

html xhtml safari
6个回答
15
投票

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

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

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


10
投票

对我来说,我只需要改变

http://domain.com/page#myanchor 

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

2
投票

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

我正在使用htaccess将我的url从mydomaincom / index.php重定向到mydomaincom /并发现我的导航在Safari中不起作用,因为我的href地址,其中index.php#值和Safari v5不会带来锚链接。

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


1
投票

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

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

0
投票

它没有使用以前提出的解决方案,它有助于我使用javascript以下列方式创建重定向。

<!-- <a href="#first-block"> -->
<a href="javascript:redirection('first-block')">

function redirection(destination){
    window.location.href = "example.com/page.html#" + destination;
}

我把它留在这里,万一有人将来为你服务。


-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+

© www.soinside.com 2019 - 2024. All rights reserved.