【发布时间】:2014-05-12 20:52:05
【问题描述】:
我正在使用 Rails 4 创建类似于 Pinterest 的模态叠加层。它们显示在无限滚动页面顶部的半透明叠加层中。
目前,当您单击链接时,浏览器的历史记录会更改以反映您正在查看的项目。但是我有一个退出按钮,当按下它时,我想让它删除覆盖(它已经这样做了),但是然后将 URL 更改回来而不会丢失用户在无限滚动上的位置。
pinterest 究竟是如何在不刷新最后一页的情况下完成将 URL 改回来的?我会将 pushState 与 '/' 一起使用,但我有多种类型的无限滚动页面,我希望脚本适用于所有这些页面。
application.js
if (history && history.pushState){
$(function(){
$('body').on('click', 'a', function(e){
$.getScript(this.href);
history.pushState(null, '', this.href);
});
$(window).bind("popstate", function(){
$.getScript(location.href);
});
});
}
关闭覆盖脚本
function removeDabble() {
history.back(-1);
/*var elem = document.getElementById('artview');
elem.parentNode.removeChild(elem);
return false;*/
}
【问题讨论】:
-
我也很好奇这个。你有没有遇到过解决方案?
-
不,我不相信这是可能的。我的印象是 Pinterest 管理它,但由于使用该网站多一点,它似乎不是那样。
-
我正在尝试做类似的事情,但没有找到解决方案。
标签: javascript jquery ruby-on-rails html html5-history