J'ai une URL codée en dur comme ceci:
https://bupacouk.bwa.local.internal.bupa.co.uk/cash-plan-quote/quoteAction.do?getBenefitLevelDetails=getBenefitLevelDetails&productPolicyId=7841#a1
Lorsque Javascript est activé, je ne veux pas la valeur de hachage à la fin, alors comment la supprimer?
Lorsque Javascript est désactivé, il doit être présent.
Merci.
Voici le AJAX jQuery que j'utilise. Je passe donc l'URL codée en dur à la même page sur le serveur et en récupère une table:
// 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>'));
});
}
});
Cela dépend de ce que fait la valeur de hachage. S'il déplace simplement le document vers le bas pour #a1
, il vous suffit de définir scrollTop
sur 0 après le chargement probable du document.
la recherche d'autres questions stackoverflow,
parent.location.hash = ''
devrait le faire, mais peut-être recharge la page (vous devez la tester)
En dehors de cela, je vous conseille de le gérer pendant/avant vos AJAX appels - i.e.
if (hash != 'a1'){ doAjax(); } //pseudocode obviously.
Ou, si vous avez juste besoin d'appeler AJAX avec url
sans hash, vous pouvez le supprimer en chaîne, qui appelle jQuery, non?
var $tabValue = $(this).attr('href');
var $withoutHash = $tabValue.substr(0,$tabValue.indexOf('#'));
nous obtenons essentiellement un href
avant le premier #
Un simple window.location.hash=""
le fera.
Cela pourrait être utile à quelqu'un qui pose la même question, comment extraire les données après un # dans un href.
this.hash.slice(1);
Cela donnera # 123 comme 123.
Edit: Je devrais probablement noter que si vous calculez des nombres à partir de ces données, il vaut mieux utiliser parseInt(this.hash.slice(1));
sinon vous obtiendrez des résultats amusants.
Cela fonctionne pour moi. J'ai ajouté un !
pour empêcher la page de défiler vers le haut.
window.location.hash="!";