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>'));
});
}
});
Ответы
Ответ 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="!";