在Firefox浏览器中页面锚点无法使用。

3
我有以下代码,它会在每个页面循环重复的次数不同。我的目标是打开一个弹出窗口,并通过网址直接跳转到特定的shot,如:www.example.com/shot/#12
由于某种原因,这在IE和Chrome中运行良好,但在Firefox中却不能正常工作。在Firefox中,它指向了不同的东西,但确实打开了弹出窗口。
<repeater>
    <div>
        <div>
            <a href="#ShotNumber" name="#12">
            </a>
        </div>
        <div>
            HTML FOR EACH SHOT
        <div>
    <div>
<repeater>

尝试使用id="12"代替name="#12"。 - Bula
2个回答

5

锚点

<a name="Anchorname"></a>

例如:普通方式

 <div>
   <a href="#ShotNumber">Go to ShotNumber</a> <!-- Link to ShotNumber -->
   <a href="#12">Go to 12</a> <!-- Link to 12-->
 </div>
 <!-- more stuff -->
 <div>
   <a name="ShotNumber"></a> <!-- Anchor name=ShotNumber -->
   HTML FOR ShotNumber
 </div>
 <!-- more stuff -->
 <div>
   <a name="12"></a> <!-- Anchor name=12 -->
   HTML FOR 12
 </div>

调用方式:

example.com/myShot.html#ShotNumber

编辑:HTML5:文档中指定的部分

如果文档对象模型(DOM)中存在一个元素,其ID恰好等于解码后的fragid,则树形顺序中第一个此类元素是文档中指定的部分;停止算法。

如果DOM中存在一个a元素,其name属性的值恰好等于fragid(而非解码后的fragid),则树形顺序中第一个此类元素是文档中指定的部分;停止算法。


1
我认为“name”不是有效的HTML 5属性(至少在锚点上)。我尝试使用ID,但我不明白为什么不同的浏览器行为不同!! - Alok
还有一件事...我今天终于解决了它。这是一个样式问题。div的高度为0,即没有布局。我在上面包含了布局,现在它像魔法一样运行(除了ie8)...虽然仍在努力解决。 - Alok

1

尝试一下<a name="12">这是第12个项目</a>

然后<a href="#12">转到第12个项目</a>

此外,据说HTML5不支持锚点ID。这可能会引起兴趣


在你的链接中,我认为应该是 <h1 id="xxx" tabindex="-1"><a name="xxx" id="xxx"></a> 中的一个。 - Ryan B
是的,我上面的例子是老派的方式。 - jimmy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接