使用Ajax的后退按钮历史记录,URL中没有散列
Back button history using Ajax without hash in URL
我有这个代码:
var idRetorno = null;
var link = null;
function handler()
{
if(this.readyState == this.DONE) {
if(this.status == 200)
{
$('#'+idRetorno).html(this.responseText);
window.history.pushState('', '', link);
}
}
}
function link_ajax(linkp, idRetornop)
{
idRetorno = idRetornop;
link = linkp;
var client = new XMLHttpRequest();
client.onreadystatechange = handler;
client.open("GET", link);
client.setRequestHeader('X-Requested-Header', 'XMLHttpRequest');
client.send();
}
当点击链接时,我的应用程序中的所有东西都会调用函数link_ajax,我试图用更新url
window.history.pushState('', '', link);
但是,后退按钮历史记录并没有像预期的那样工作,页面仍然是一样的。我不能在Url中使用散列(#color:red示例),因为这是应用程序的要求。还有其他解决方案吗?
您是否使用onoptstate来检测页面状态是否已更改?
window.onpopstate = function(event) {
alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
};
相关文章:
- window.location替换并传递URL历史记录条目中的变量
- 使用Ajax的后退按钮历史记录,URL中没有散列
- 如何记录.pushState(),然后立即转到URL栏中的页面
- 通过javascript从浏览器历史记录中删除URL
- 有没有任何方法可以在单页应用程序中记录url和哈希片段
- 使用 html5 历史记录代替哈希 URL 来恢复用户的历史记录
- 使用 javascript 更改 url 和修改历史记录
- 在 $.ajaxSetup 转换器中获取 ajax 请求 URL,以便进行日志记录
- Ember.js 在 App.Route 中指定位置=“历史记录”的 URL 类型时出错
- Div 叠加层淡入历史记录,并可使用哈希 URL 添加书签
- 如何使用浏览器历史记录状态在我的单页 JavaScript 应用程序中加载 URL
- HTML5历史记录:如何查看弹出的URL(即,我们点击后退按钮时所在的页面)
- 使用restangular在angularJs上基于url参数检索记录
- 主干网不会将URL写入浏览器历史记录
- Backbone.js将当前URL保存到历史记录中
- 如何记录301重定向URL
- 我可以记录吗?从url写入
- 在不更改URL的散列或任何其他部分的情况下向浏览器添加历史记录条目
- 在带有历史记录的 javascript 中查找上次访问的 URL
- 重定向到新的url,但从历史记录中删除先前的