0

在 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")
4

2 回答 2

2

你看过location.hash属性吗?

附带说明一下,这个插件对于检测散列的变化非常有用,然后对其做出反应。jQuery hashchange

于 2012-04-28T15:53:44.523 回答
0

我建议使用History.jsjQuery BBQ。它们都为 HTML5 pushState 提供了良好的支持,并为 HTML4 浏览器提供了回退(使用类似于您的示例的哈希)。jQuery BBQ 也有一些很好的函数来处理查询字符串。

这是基本思想(使用 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...
});

我的示例非常简短,因此请快速查看每个插件的文档,看看哪个最适合您的项目。

于 2012-04-28T18:02:23.360 回答