页面内的Javascript重定向方法

时间:2012-04-28 15:45:41

标签: javascript jquery ajax

我正在寻找一种在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")

2 个答案:

答案 0 :(得分:2)

您是否看过location.hash属性?

作为旁注,这个插件对于检测哈希值的变化,然后对它做出反应非常有用。 jQuery hashchange

答案 1 :(得分:0)

我建议使用History.jsjQuery 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...
});

我的示例很简短,所以快速查看每个插件的文档,看看哪个最适合您的项目。