gpt4 book ai didi

javascript - turbolinks 中的历史记录错误链接到带有哈希的页面

转载 作者:行者123 更新时间:2023-12-03 09:41:16 27 4
gpt4 key购买 nike

我在使用 Rails 中的 Turbolinks 时遇到了一些恼人的问题,我希望你们中的一些人能帮助我解决这个问题。

我正在使用 jQuery-address 将哈希值添加到我的 url,以便在出现特定哈希值时执行一些 javascript。

问题是 Turbolinks 似乎不起作用,如果我单击后退按钮(历史返回)并且历史返回指的是带有哈希的 URL。它根本不会更改页面内容。例如。 mypage.com/test2 然后我回到 mypage.com/test1#1。

我想做一个 js 修复,所以如果我使用 history back 访问另一个带有哈希的页面,它应该重新加载页面以刷新内容或者使用 Turbolinks 强制内容手动刷新。

提前致谢!

最佳答案

我可以在没有代码的情况下提供的最好信息是 Turbolinks刷新 <body>页面的


委派

正常的 HTML 呈现是重新呈现整个页面,这意味着您的 JS 能够重新绑定(bind)到不同的元素。 JS 的工作方式是将一个事件绑定(bind)到一个特定的元素上。该元素必须位于页面 ( document/DOM ) 本身上,以便 JS 绑定(bind)到它。

Turbolinks 因阻止 JS 将事件绑定(bind)到元素而臭名昭著。由于 Turbolinks 在页面上保留相同的 JS,因此它阻止了对 JS 的绑定(bind)。相反,您需要使用 turbolinks event handlers将您的事件绑定(bind)到 DOM,并通过 turbolinks 进行委托(delegate),如下所示:

var ready = function(){
//your code here
};
$(document).on("page:load ready", ready);

关于javascript - turbolinks 中的历史记录错误链接到带有哈希的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23603753/

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