使用js更改location.href的某些部分而不重定向浏览器?

时间:2010-12-23 11:27:12

标签: javascript jquery

嗨,这是问题:我的网址是这样的 http://somesite.com?theSearch=someword&a=b&c=d

在此页面上显示搜索结果,在此页面上我已经放置了ajax搜索的功能,即结果在没有页面重新加载的情况下更新但问题是如果用户点击页面上的任何链接然后按下后面按钮他在页面页面上显示搜索结果“someword”而不是新单词类型(我的意思是ajax结果更新的单词)客户端抱怨它,我需要解决它有没有人有解决方案?

我正在使用jQuery

2 个答案:

答案 0 :(得分:1)

如果没有新的加载,您无法更改location.href。您可以做的是设置哈希值。

每次进行搜索都会更改哈希值

function doSearch(searchword) {
    location.hash = searchword;
    //your search code
}

现在哈希将引用最新的搜索。然后添加此代码以“覆盖”get参数?theSearch=

$(document).ready(function() {
    if(location.hash.length>0) {
        doSearch(location.hash);
    }
});

它不是一个很好的解决方案,因为你将加载2个搜索结果,但它会起作用。

答案 1 :(得分:0)

您可以尝试Sammy。它利用URL哈希(#),因此您可以创建仍然响应浏览器中后退按钮的单页应用程序,就像Facebook一样。它运行在jQuery上。