1

归结为,我有两页。简而言之,它们可以这样表示。

第 1 页

<html>
    <a href="page-2.html#section-A">Link to section A</a>
</html>

第2页

<html>
    <script>        
        // Assume jQuery
        $(document).ready(function(){
            $('#wrapper').append($('<a name="section-A">Here is Section A</a><p>Some more content here.</p>'));
        });
    </script>
    <div id="wrapper"></div>
</html>

这样做的问题是,当您单击第 1 页中的链接时,该 URL 会显示“ http://www.mydomain.com/page-2.html#section-A ”,但锚链接的内容to 直到 DOM 加载后才生成,考虑到 URL 是先加载的,这为时已晚。

如果问题不清楚,请告诉我,我会尝试进一步澄清,但如果有人对如何让这样的场景起作用有任何初步想法,请告诉我。

4

1 回答 1

1

在第二页中,“就绪”处理程序中的代码可以检查页面位置。如果该位置中有类似“#wrapper”的内容,那么您的 JavaScript 可以重置该位置。

$(document).ready(function(){
  $('#wrapper').append($('<a name="section-A">Here is Section A</a><p>Some more content here.</p>'));
  if (document.location.hash === '#wrapper')
    document.location.hash = '#wrapper';
});

我会试试这个,看看它是否真的有效。:-)

编辑好的,这是一个测试页面: http: //gutfullofbeer.net/hash1.html

有两个链接:一个有哈希(在我的例子中是'#hello'),一个没有。当您单击第二个时,您会注意到您在页面底部看到“你好”部分。当您单击第一个时,您会转到同一页面,但“hello”部分将不可见(除非您的浏览器窗口真的很大)。

于 2010-03-05T14:41:41.710 回答