我有以下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
Helenr
拉莫斯之舞
相关分类