2010-06-11 112 views
5

我的html锚点如下。Safari链接不起作用

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

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

当我输入url 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吗?

回答

15

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

Opera,IE浏览器,Chrome浏览器,火狐浏览器将继续锚点到新的页面。然而safari失去了重定向的锚点。

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

+0

感谢一束此。我在Wordpress中遇到过这个问题。我不确定为什么会发生重定向。也许我在某个时候重命名了页面,并没有更新页面内的链接。 – cdonner 2014-06-26 23:09:20

1

有两个方面的问题我明白了,这是不是原因(因为你发现了问题的话),但可能不帮助:

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

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

我使用htaccess将我的网址从mydomaincom/index.php重定向到mydomaincom /,并发现我的导航无法在Safari中工作,因为我的href地址在index.php#value和Safari v5 wouldn'没有链接锚链接。

而不是关闭我的重定向我刚刚更改了网址指向mydomaincom /#值。这不仅工作高度为所有浏览器,但它也使我的网页更快(尚未确定如何,但现在搜索这个:))

10

对于我来说,我只是不得不改变

http://domain.com/page#myanchor 

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

为此欢呼。简单修复,并在Firefox,Opera和Chrome中运行。 – Ninetou 2013-06-08 14:54:12

+2

真的吗?这在Safari中适用于你?我看不到相同的行为。 – 2013-07-11 16:19:51

+0

您好Ryan,发布您的代码,我将在Safari上测试 – 2013-07-30 05:16:44

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

Works的Safari的6+