我正在寻找一种在Ajax请求之后在我的页面中重新定义的好方法
如果成功,我想转换当前的uri(location.href)
http://my.domain.com/jm/app.html?application=test&keyword=pp&data=&enum=&end=
到
http://my.domain.com/jm/app.html#Results?application=test&keyword=pp&data=&enum=&end=
所以在uri路径后添加#Results,但是我想保留查询字符串, 找到正则表达式可能很难看,并将其应用于location.href
是否有jquery方法只是浏览页面内容?
像
$.redirectTo("Results")
答案 0 :(得分:2)
您是否看过location.hash属性?
作为旁注,这个插件对于检测哈希值的变化,然后对它做出反应非常有用。 jQuery hashchange
答案 1 :(得分:0)
我建议使用History.js或jQuery BBQ。它们都为HTML5 pushState提供了良好的支持,并为HTML4浏览器提供了回退(使用类似于您的示例的哈希)。 jQuery BBQ也有一些nice functions用于操作查询字符串。
这是基本想法(使用History.js)。成功后,您可以更新这样的位置:
var newUrl = "/app.htmlapplication=test&keyword=pp&data=&enum=&end=";
// Make AJAX request ...
// On success
History.pushState({}, null, newUrl);
您还需要为状态/散列更改事件实现侦听器。使用History.js,它看起来像这样:
History.Adapter.bind(window, 'statechange', function() {
// The user probably hit the back button, do something...
});
我的示例很简短,所以快速查看每个插件的文档,看看哪个最适合您的项目。