在测试document.location.href时,我观察到当用户启动导致javascript分配给document.location.href的操作时,新URL将添加到历史记录中.
但是,如果调用是由javascript启动的,例如,XMLHTTPRequest的状态更改,则会覆盖历史记录中当前页面的条目.我有正确的特征吗?在后一种情况下,有没有办法让页面更改反映在历史记录中?
roy*_*ton 12
我遇到了同样的问题,发现这个解决方法对我有用
代替
function onAjaxCallback(evt){
location.href=newLocation;
}
Run Code Online (Sandbox Code Playgroud)
我在setTimeout周围包装了location.href调用.似乎可以做到这一点.我的历史现在表现得很好.希望有所帮助
function onAjaxCallback(evt){
setTimeout(function(){
location.href=newLocation;
},0)
}
Run Code Online (Sandbox Code Playgroud)
您可以在不让浏览器显示“返回”按钮的情况下更改位置,如下所示:
window.location.replace(new_url);
Run Code Online (Sandbox Code Playgroud)
但是,原始地址保留在浏览器的历史记录中,可以使用类似CTRL+H
参考:
| 归档时间: |
|
| 查看次数: |
10212 次 |
| 最近记录: |