Подтвердить что ты не робот

JQuery удаление хеш-значения из URL-адреса

У меня есть жестко закодированный URL-адрес:

https://bupacouk.bwa.local.internal.bupa.co.uk/cash-plan-quote/quoteAction.do?getBenefitLevelDetails=getBenefitLevelDetails&productPolicyId=7841#a1

Когда включен Javascript, я не хочу хеш-значение на конце, поэтому как его удалить?

Когда Javascript отключен, он должен присутствовать.

Спасибо.

ИЗМЕНИТЬ

Вот AJAX jQuery, который я использую. Поэтому я нахожу URL жестко закодированного URL-адреса на той же странице на сервере и извлекаю из него таблицу:

        // Find href of current tab
    var $tabValue = $(this).attr('href');

    // AJAX new table in
    $.ajax({
        type: "GET",
        cache: false,
        url: $(this).attr('href'),
        success: function(data){

        // Find benefit wrap
        $(data).find('.benefitWrap').each(function(){
            // get the contents
            var $benefitWrap = $(this).html();
            // replace contents on page
            $('.benefitWrap').replaceWith($('<div class="benefitWrap">' + $benefitWrap + '</div>'));

        });

       }

    });
4b9b3361

Ответ 1

оригинал

Это зависит от того, что делает хэш-значение. Если он просто перемещает документ до #a1, вам просто нужно установить scrollTop в 0 после загрузки документа.

изменить

смотрящий на другие вопросы stackoverflow,

parent.location.hash = ''

должен это сделать, но, возможно, перезагружает страницу (вы должны ее протестировать)

Кроме этого, я советую вам обрабатывать его во время/перед вашими вызовами AJAX, т.е.

if (hash != 'a1'){ doAjax(); } //pseudocode obviously.

изменить 2 с кодом на основе опубликованного кода

Или, если вам просто нужно вызвать AJAX с помощью url без хеша, вы можете удалить его в строке, которая вызывает jQuery, no?

var $tabValue = $(this).attr('href');
var $withoutHash = $tabValue.substr(0,$tabValue.indexOf('#'));

в основном получаем a href перед первым #

Ответ 2

Простой window.location.hash="" сделает это.

Ответ 3

Это может быть полезно для кого-то, задающего тот же вопрос, как вытащить данные, следующие за # в href.

this.hash.slice(1);

Это даст № 123 как 123.


Изменить: я должен заметить, что если вы собираетесь вычислять числа из этих данных, лучше всего использовать parseInt(this.hash.slice(1));, иначе вы получите фанковые результаты.

Ответ 4

Это работает для меня. Я добавил ! чтобы страница не прокручивалась вверх.

window.location.hash="!";