У меня есть твердый кодированный 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>'));
});
}
});
Это зависит от того, что делает хэш-значение. Если оно просто перемещает документ вниз на #a1
, вам просто нужно установить scrollTop
в 0 после загрузки документа, вероятно.
глядя на другие вопросы на stackoverflow,
parent.location.hash = ''
должно получиться, но возможно перезагрузит страницу (нужно проверить)
В остальном, я советую вам обрабатывать это во время/до вызова AJAX - т.е..
if (hash != 'a1'){ doAjax(); } //pseudocode obviously.
Или, если вам просто нужно вызвать AJAX с url
без хэша, вы можете удалить его в строке, которая вызывает jQuery, нет?
var $tabValue = $(this).attr('href');
var $withoutHash = $tabValue.substr(0,$tabValue.indexOf('#'));
мы в основном получаем href
перед первым #