2011-04-07 27 views
1

我有一个php(codeigniter)程序,显示所有完成的项目和工程公司。我可以点击详细信息页面,然后点击链接返回概览页面。为了避免再次从列表的顶部开始,我想跳到我从之前开始的项目。 这似乎很容易,但它给我的问题。我在网上找到这个解决方案,与Chrome,但无法与Firefox和IE浏览器的工作原理:跳转到javascript的named anchor

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

锚的内容被动态地由PHP生成。正如我所说,它只适用于Chrome。当我进入调试模式时,IE说一些类似未定义函数moveWindow的东西。

回答

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> 

未测试......

+0

谢谢为您的快速回答。 – Alfred 2011-04-07 16:38:25

+0

在我的概述列表中,我使用了名称锚,例如。当我从我的详细信息页面返回时,我使用 Alfred 2011-04-07 16:42:47

+0

我应该在哪里使用您建议的功能?像现在这样使用 Alfred 2011-04-07 16:45:52