17

我有一个像这样的硬编码 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>'));

        });

       }

    });
4

4 回答 4

28

原来的

这取决于哈希值的作用。如果它只是将文档向下移动到#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先得到a#

于 2010-03-05T10:12:35.997 回答
14

一个简单的window.location.hash=""就可以了。

于 2011-12-13T14:45:08.887 回答
8

这可能对提出相同问题的人有所帮助,即如何在 href 中提取 # 之后的数据。

this.hash.slice(1);

这将使#123 为 123。


编辑:我可能应该注意,如果你要从这些数据中计算数字,最好使用parseInt(this.hash.slice(1));,否则你会得到时髦的结果。

于 2012-03-01T19:22:34.997 回答
2

这对我有用。我添加了一个!以防止页面向上滚动。

window.location.hash="!";
于 2019-07-11T16:19:17.327 回答