内部链接与jQuery地址

时间:2011-12-22 18:08:38

标签: javascript jquery browser-history deep-linking hashbang

我正在尝试实现可爱的地址插件来处理内部链接以获得更漂亮的链接和使用后退按钮。我设法让它工作,但我注意到的一件事是,如果用户然后复制该URL并尝试在新窗口中打开它(或发送),它将URL从/#部分更改为/#/部分对于朋友而言,它不会将用户带到页面上的该部分。显然是因为它不再被认为是一个锚。

当用户通过网址导航时,如何让它出现在正确的部分?

下面是我根据jQuery地址使用的代码片段:

$('nav a').click(function() { 
    var pageTitle = 'Kevin Dare Foundation | ' + $(this).html(); 
    $.address.value($(this).attr('href').replace(/^#/, ''));
    $.address.title(pageTitle);
});

此处还有以下链接:http://nickdimatteo.com/kjd

1 个答案:

答案 0 :(得分:1)

最简单的方法可能是在文档加载时触发你拥有的代码,如果有document.location.hash:

$('nav a').click(function() { 
    var pageTitle = 'Kevin Dare Foundation | ' + $(this).html(); 
    $.address.value($(this).attr('href').replace(/^#/, ''));
    $.address.title(pageTitle);
});

$(document).ready(function() {
    var hash = document.location.hash.replace(/^#\//, '');
    if(hash) {
        $('nav a[href="#' + hash + '"]').trigger('click');
    }
});