Javascript 向url添加搜索条件,但可以';不要回去
我正在尝试将搜索条件的参数输入到url中,以便可以复制和粘贴特定的搜索 目前我有:Javascript 向url添加搜索条件,但可以';不要回去,javascript,jquery,Javascript,Jquery,我正在尝试将搜索条件的参数输入到url中,以便可以复制和粘贴特定的搜索 目前我有: // Search criteria in the url var ready = function(e){ $("#filterrific_filter").click(function(){ $.get($("#filterrific_filter").attr("action"), $("#filterrific_filter").serialize(), null, "scri
// Search criteria in the url
var ready = function(e){
$("#filterrific_filter").click(function(){
$.get($("#filterrific_filter").attr("action"), $("#filterrific_filter").serialize(), null, "script");
history.pushState(null, document.title, $("#filterrific_filter").attr("action") + "?" + $("#filterrific_filter").serialize());
e.preventDefault();
});
$(window).bind("popstate", function() {
$.getScript(location.href);
});
};
$(document).ready(ready);
$(document).on('page:load', ready);
问题是:当点击一个结果,用户试图再次返回搜索页面时,他们不会返回,而是停留在同一页面上。不过url会改变
提前谢谢 尝试删除整个部分:
$(window).bind("popstate", function() {
$.getScript(location.href);
});
由于您的plants#show
操作(假设您在Rails后端使用RESTful设计,这是一个猜测)是一个往返请求(不像过滤器那样使用AJAX),并且您的查询字符串URL将在重新加载时正确运行filterrific脚本,因此您最好让back按钮以默认方式工作
免责声明:这是在黑暗中拍摄,没有更多背景。如果它对您不起作用,并且您提供了更多的上下文,我将很高兴地重新访问。尝试删除整个部分:
$(window).bind("popstate", function() {
$.getScript(location.href);
});
由于您的plants#show
操作(假设您在Rails后端使用RESTful设计,这是一个猜测)是一个往返请求(不像过滤器那样使用AJAX),并且您的查询字符串URL将在重新加载时正确运行filterrific脚本,因此您最好让back按钮以默认方式工作
免责声明:这是在黑暗中拍摄,没有更多背景。如果它对您不起作用,并且您提供了更多的上下文,我将很高兴地重新访问。我对历史/pushstate/popstate的了解不足,但我看到单击过滤器会创建两个历史条目。我猜ready和page:load事件都会触发,所以你也会调用ready函数两次,创建重复的点击处理程序、重复的PushState等。我也看到你的页面中出现错误,比如引导需要jquery…是的,我在本地版本上修复了这一点,但这并没有改变任何事情,不幸的是,我对history/pushstate/popstate缺乏了解,但我看到点击一个过滤器会创建两个历史条目。我猜ready和page:load事件都会触发,所以你也会调用ready函数两次,创建重复的点击处理程序、重复的PushState等。我也看到你的页面中出现错误,比如引导需要jquery…是的,我在本地版本上修复了这一点,但这并没有改变任何事情,不幸的是,这不起作用-如果我删除了另一部分,url不会得到更新,但它会起作用,所以我认为问题就在那里。你能要求什么背景来帮助解决这个问题吗?当你尝试我的建议时,它到底做了什么?另外,为什么需要第二个
$(document).on('page:load',ready)代码>?正如@yezzz的评论所说,这很可能是设置了重复的处理程序,并且可能是导致问题的原因。没有发生任何事情-结果是一样的。我现在尝试删除$(文档)现在只有我先刷新页面才有效,所以我想我需要最后两行?你能澄清一下“先刷新页面”吗?如中所示,您是先刷新然后向后推,还是先向后推然后刷新?此外,它现在似乎可以工作了……你尝试过其他方法吗?如果我进入搜索页面/公寓没有任何效果,我必须在单击按钮之前刷新页面。不,不幸的是,我没有做任何事情:-(这不起作用-如果我删除另一部分,url不会得到更新,但它会起作用,所以我假设问题就在那里。你可以请求任何上下文来帮助解决这个问题吗?当你尝试我的建议时,它到底做了什么?还有,为什么你需要第二个$(document).on('page:load',ready);
?正如@yezzz的评论所说,这可能是设置了重复的处理程序,并且可能是导致问题的原因。没有发生任何事情-结果是相同的。我现在已尝试删除$(document)。on('page:load',ready)
现在只有我先刷新页面才有效,所以我想我需要最后两行?你能澄清一下“先刷新页面”吗?如中所示,您先刷新然后按后退,或按后退然后刷新?此外,它现在似乎起作用了…您尝试了其他方法吗?如果我转到搜索页面/公寓无效,我必须在单击按钮之前刷新页面。不,不幸的是,我没有执行任何操作:-(