Удалить хэш из 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;

    }); 

});

Я не знаю, уместно ли это, но я также использую Hash history с 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