gpt4 book ai didi

ruby-on-rails - 如何使用 Turbolinks 刷新页面

转载 作者:数据小太阳 更新时间:2023-10-29 06:46:27 25 4
gpt4 key购买 nike

我知道我可以在 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()

要防止页面从顶部滚动到所需位置时出现闪烁,请在页面的 head 中添加 no-preview 缓存指令:

<meta name="turbolinks-cache-control" content="no-preview">

关于ruby-on-rails - 如何使用 Turbolinks 刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37358652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com