我有一个像这样的硬编码网址:
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>'));
});
}
});
答案 0 :(得分:27)
这取决于哈希值的作用。如果它只是将文档向下移动到#a1
,您只需要在加载文档后将scrollTop
设置为0.
查看其他stackoverflow问题,
parent.location.hash = ''
应该这样做,但可能重新加载页面(你必须测试它)
除此之外,我建议你在AJAX通话期间/之前处理它 - 即
if (hash != 'a1'){ doAjax(); } //pseudocode obviously.
或者,如果您只需要使用url
调用AJAX而不使用哈希,您可以在字符串中删除它,调用jQuery,不是吗?
var $tabValue = $(this).attr('href');
var $withoutHash = $tabValue.substr(0,$tabValue.indexOf('#'));
我们在第一次href
#
答案 1 :(得分:14)
一个简单的window.location.hash=""
就可以了。
答案 2 :(得分:8)
对于提出相同问题的人,如何在href中的#之后提取数据,这可能会有所帮助。
this.hash.slice(1);
这将使#123为123。
编辑:我应该注意,如果您要从这些数据中计算数字,最好使用parseInt(this.hash.slice(1));
,否则您将获得时髦的结果。
答案 3 :(得分:1)
这对我有用。我添加了!
以防止页面向上滚动。
window.location.hash="!";