为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery 函数 history.replaceState() 从 URL 中删除其他参数

jQuery 函数 history.replaceState() 从 URL 中删除其他参数

MMTTMM 2022-09-02 21:19:09
我有以下jQuery代码,它在单击后退按钮时关闭引导模式。它工作正常。但是,当它关闭模式时,它应该从URL栏中删除,它确实如此。但是,在这样做的同时,它还会从URL中删除其他“必需”参数。例如:#my-modal-id当 URL 为: 时,它可以正常工作。在这里,它根据脚本从URL栏中删除。目前为止,一切都好。http://localhost/gamearena/index.php#my-modal-id#my-modal-id但是,当URL具有其他参数(例如)时,它会搞砸。在这里,它甚至会随之删除。我如何控制它,以便它只删除之前自行设置的模态ID。http://localhost/gamearena/index.php?ref=shreyansh#sidebar-left?ref=shreyansh代码如下:// Close model on clicking back button / swiping back  $('div.modal').on('show.bs.modal', function() {    var modal = this;    var hash = modal.id;    window.location.hash = hash;    window.onhashchange = function() {      if (!location.hash){        $(modal).modal('hide');      }    }  });  $('div.modal').on('hidden.bs.modal', function() {    var hash = this.id;    history.replaceState('', document.title, window.location.pathname);  });  // when close button clicked simulate back  $('div.modal button.close').on('click', function(){    window.history.back();  })  // when esc pressed when modal open simulate back  $('div.modal').keyup(function(e) {    if (e.keyCode == 27){      window.history.back();    }  });编辑在诊断了一点之后,我发现这条线负责改变这里的URL的内容,即删除哈希值和其他参数。此外,我注意到抓取URL只到它上面的参数,而不是超出它的参数。因此,在我看来,该函数将URL恢复为状态,而不是因为它无法识别它。因此,我得出的结论是,如果被一个能够将URL提取到(添加哈希部分之前的位置)的函数替换,那么问题将得到解决。因此,请专家对此进行一些阐述。history.replaceState('', document.title, window.location.pathname);window.location.pathnameindex.phpindex.phpindex.php?ref=shreyanshwindow.location.pathnameindex.php?ref=shreyansh
查看完整描述

2 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

您的代码在设置哈希时不会更新历史记录,因此会恢复到较早的 URL 状态。history.back()


这将更新哈希和历史记录:


function addHash (hashString) {

  let myHash = '#' + hashString;

  location.hash = myHash;

  history.replaceState(null, null, myHash);

}


查看完整回答
反对 回复 2022-09-02
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

尝试

window.location.hash = '';

而不是使用

window.history.back();

如果要从 URL 中删除哈希。它还会触发window.onhashchange


查看完整回答
反对 回复 2022-09-02
  • 2 回答
  • 0 关注
  • 369 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信