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