javascript - jQuery 从 URL 中删除哈希值

标签 javascript jquery fragment-identifier

我有一个硬编码的 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.

使用基于发布的代码的代码编辑2

或者,如果您只需要使用 url 不带哈希值来调用 AJAX,您可以在调用 jQuery 的字符串中删除它,不是吗?

var $tabValue = $(this).attr('href');
var $withoutHash = $tabValue.substr(0,$tabValue.indexOf('#'));

我们基本上在第一个#之前得到a的href

关于javascript - jQuery 从 URL 中删除哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2385897/

相关文章:

javascript - jQuery在点击事件打开新选项卡时模拟ctrl + click

javascript - 传单事件 : how to propagate to overlapping layers

javascript 匿名函数求值习语

javascript - 如果内联按钮不在屏幕上,jQuery 会在底部放置社交共享按钮

javascript - 根据Fragment ID调用javascript函数

javascript - 在纯javascript中按数据ID选择项目

javascript - 在变量中存储最近的和 parent 在 Internet Explorer 中不起作用

jquery - AJAX 调用后无法使用 DOM 元素

security - 使用片段标识符在 URL 中保存私有(private)数据有多安全?

javascript - 如何检测位置哈希的变化?