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 той же странице на сервере и получаю таблицу от него:

        // 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>'));

        });

       }

    });
17
задан Rod 15 January 2013 в 18:39
поделиться

1 ответ

original

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

edit

глядя на другие вопросы на stackoverflow,

parent.location.hash = ''

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

В остальном, я советую вам обрабатывать это во время/до вызова AJAX - т.е..

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

редактировать 2 с кодом, основанным на размещенном коде

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

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

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

28
ответ дан 30 November 2019 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: