从URL window.location.hash中删除哈希

时间:2013-03-13 21:03:56

标签: jquery ajax url hash window.location

我需要从我的网址中删除#,以便完整的网址是example.com/sub-page-title而不是example.com/#sub-page-title。

我能够使用substr(31)得到一个重复的URL,31是URL的长度,包括http:// ...但我确信这不是理想的方法。

注意:我无法刷新页面。

点击后,外部页面被加载到一个div(然后滑入到位)...一旦可见,我希望URL反映这一点(没有#)。这样前进并点击“返回”将使用户进入实际页面。

CODE:

    $(document).ready(function(){

    var hash = window.location.hash.substr(1);
    var href = $('a.load').each(function(){
        var href = $(this).attr('href');
    });


    $('a.load').click(function(){

    var toLoad = $(this).attr('href')+' #project-details';
        $('.wide-frame').animate({
            left: -985,
            duration: 'slow'
        })
    $('#project-details article').hide();   
    $('#project-details').fadeIn('normal',loadContent);


    window.location.hash = $(this).attr('href').substr(31);

    function loadContent() {
        $('#project-details').load(toLoad,showNewContent)
    }
    function showNewContent() { 
        $('#project-details').show('normal');
        $.getScript("<?php bloginfo('template_directory'); ?>/scripts/ajax-control.js");
    }
    return false;

    }); 

});

我不知道这是否相关,但我也使用哈希历史记录和jQuery BBQ来获取其他一些导航功能。

1 个答案:

答案 0 :(得分:-1)

一个漂亮的小RegExp怎么样?

否则只需使用replace()方法。

像这样:

var string = "url/#hash";
string.replace('#','');