ruby-on-rails – 如何使用Turbolinks刷新页面
发布时间:2020-12-17 04:20:09 所属栏目:百科 来源:网络整理
导读:据我所知,我可以在 Turbolinks 5上调用以下代码,但它会更改滚动位置.有没有办法调用Turbolinks来刷新页面而不是更改滚动位置? Turbolinks.visit(location.toString()); 这将做我想要的,但希望使用Turbolinks window.location.reload() 解决方法 在调用visit
据我所知,我可以在
Turbolinks 5上调用以下代码,但它会更改滚动位置.有没有办法调用Turbolinks来刷新页面而不是更改滚动位置?
Turbolinks.visit(location.toString()); 这将做我想要的,但希望使用Turbolinks window.location.reload() 解决方法
在调用visit之前存储当前滚动位置,然后在页面加载时滚动到该存储位置.将存储的滚动位置重置为null可确保后续页面加载不会滚动到旧位置.一种可能的实现可能是:
var reloadWithTurbolinks = (function () { var scrollPosition function reload () { scrollPosition = [window.scrollX,window.scrollY] Turbolinks.visit(window.location.toString(),{ action: 'replace' }) } document.addEventListener('turbolinks:load',function () { if (scrollPosition) { window.scrollTo.apply(window,scrollPosition) scrollPosition = null } }) return reload })() 然后你可以调用reloadWithTurbolinks(). 要防止页面从顶部滚动到所需位置时闪烁,请在页面头部添加无预览缓存指令: <meta name="turbolinks-cache-control" content="no-preview"> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |