Премахнете хеша от URL window.location.hash

Трябва да премахна # от моя URL адрес, така че завършеният URL адрес да е example.com/sub-page-title вместо example.com/#sub-page-title.

Успях да накарам повтарящ се URL адрес да изчезне с помощта на substr(31), като 31 е дължината на URL адреса, включително http://... но съм сигурен, че това не е идеалният начин за това.

ЗАБЕЛЕЖКА: Не мога да имам опресняване на страницата.

При щракване външна страница се зарежда в div (който след това се плъзга на място)... щом това стане видимо, искам URL адресът да отразява това (без #). По този начин преминаването напред и натискането на „Назад“ ще доведе потребителите до действителната страница.

КОД:

    $(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 за някои други функции за навигация.


person RevConcept    schedule 13.03.2013    source източник
comment
Вярвам, че това, което искате да направите, вече е разгледано в тази тема.   -  person Jacob VanScoy    schedule 14.03.2013


Отговори (1)


Какво ще кажете за един хубав малък RegExp?

В противен случай просто използвайте метода replace().

като този :

var string = "url/#hash";
string.replace('#','');
person Romain Braun    schedule 13.03.2013
comment
Освен ако не искате да разширите отговора си, за да бъде нещо повече от връзка и да включите кодови фрагменти или пример, това трябва да е коментар (в най-добрия случай). - person Matt; 14.03.2013
comment
Не знам как да добавя коментари хаха. Засрамвам се. - person Romain Braun; 14.03.2013
comment
Да, съжалявам...наистина съм разбирач с HTML/CSS PHP...но тези други неща са малко извън разбиранията ми, събрах горното, но сега съм заседнал! - person RevConcept; 14.03.2013
comment
Отговорих, преди да промените отговора си... Опитах се да добавя вашето решение на няколко места в кода, който поставих по-горе, но нищо не се случва. Къде да го сложа?? - person RevConcept; 14.03.2013
comment
Какъв е URL адресът, от който искате да премахнете #? $(this).attr('href').substr(31); ? След това направете $(this).attr('href').substr(31).replace('#',''); - person Romain Braun; 14.03.2013
comment
Добавяне на $(this).attr('href').substr(31).replace('#',''); не премахва хеша...?? Ето сайта за разработчици, ако искате да го видите връзка. Щракването върху който и да е от квадратите ще ви покаже какво се случва. Пълният код (включително вашето решение) е в долния колонтитул. - person RevConcept; 14.03.2013
comment
Съжалявам, но мисля, че наистина не разбирам какво се опитвате да направите. Можете ли да редактирате въпроса си или нещо подобно? - person Romain Braun; 14.03.2013
comment
Не знам как да перифразирам въпроса... всичко, което искам да направя, е да извадя # от URL адреса. Методът replace() не го прави. - person RevConcept; 15.03.2013