我有一个网站,它使用哈希来打开/关闭当前页面上的一些选项卡和图层。使用哈希值的原因是,如果用户通过链接访问另一个页面,然后返回原始页面,则所有选项卡和图层的打开方式都应与离开该页面时完全相同。
问题是,在第一页上并使用浏览器后退按钮时,只有哈希值发生变化,并且用户必须单击多次才能真正返回到最后一个“真实”页面。
这种行为可以改变吗?这是一个示例工作流程:
所以我正在访问一个页面:
start.php
> 点击链接 >processing.php
> 单击选项卡,哈希更改 >
processing.php#1
> 单击页面上的不同部分,哈希更改为 >
processing.php#1-2
现在,当我点击浏览器后退按钮时,我想返回:
start.php
NOT processing.php#1
但!当我从:
processing.php#1-2
> 导航至 >otherpage.php
然后从那里点击后退按钮,我需要返回到:
processing.php#1-2
以恢复打开的选项卡和图层。
那可能吗!?任何帮助表示赞赏!
据我所知,你can’t无需 JavaScript 即可解决此问题。该片段是 URL 的一部分,当它发生更改时,新的 URL 将添加到历史记录中。
我建议使用location.replace()
当您想要更改 URL 而不创建历史记录条目时。而不是设置window.location.hash
, 尝试这个:
window.location.replace('#1');
我将让您选择将其集成到您的网站的最佳方式,但这里有一个经过最低限度测试的选项,用于捕获链接点击:
$(window).on('click', 'a', function(e){
var href = $(e.target).attr('href');
if (href && href[0] === '#') {
window.location.replace(e.target.href);
return false;
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)