用javascript跳转到命名锚点

时间:2011-04-07 15:46:11

标签: javascript codeigniter anchor

我有一个php(codeigniter)程序,显示所有已完成的项目和工程公司。我可以单击详细信息页面,然后我可以单击链接返回概述页面。为了避免再次从列表的顶部开始,我想跳转到我凸出的项目。 这似乎很容易,但它给我带来了麻烦。我发现这个解决方案在互联网上适用于Chrome,但不适用于Firefox和IE:

<script type="text/javascript" language="javascript">
    function moveWindow (){window.location.hash="a13";}
</script>
<body onload="moveWindow()">
.
.
.
<a name="a13"></a>

锚的内容由PHP动态生成。正如我所说,它仅适用于Chrome。当我进入调试模式时,IE会说出未定义的函数moveWindow

1 个答案:

答案 0 :(得分:4)

您可以将功能附加到详细信息单击,将URL更改为currentURL#yourID,然后将其更改为最终URL。这样,currentURL#yourID将存储在浏览器的历史记录中,返回将使您到达正确的锚点。

类似的东西(假设你使用jQuery而你的ID在<a>上):

$(document).ready( function() {
    $('#yourlist a').click( function(e) {
       e.preventDefault();
       window.location = '#'+$(this).attr('id');
       window.location = this.href; // intentionally not using jQuery ;-)
    });
});

HTML看起来像:

<ul id="yourlist">
    <li><a href="details_page_for_item_1.html" id="a1">Item 1</a></li>
    <li><a href="details_page_for_item_2.html" id="a2">Item 2</a></li>
    <li><a href="details_page_for_item_3.html" id="a3">Item 3</a></li>
</ul>

未经测试......