如果我在Rails中使用Turbolinks,则单击浏览器中的“返回”将禁用我的javascript代码
好吧,正如标题所说或多或少。 我在我的Rails应用程序中使用了gem Turbolinks,而且我对“浏览器后退”按钮有点问题。 我的javascripts工作正常,直到我在浏览器中单击,然后它停止工作。 如果我单击我的应用程序中的链接或重新加载页面,它将再次开始工作。
ant想法如何解决这个问题?
jquery-turbolinks gem不再支持Turbolinks 5 ,因此该解决方案现在已被弃用。
如果您想禁用turbolinks-caching,只需将此元数据添加到您的页面;
Turbolinks Classic的两种解决方案:
将缓存设置为0,以便不使用HTML5历史记录缓存任何页面。
Turbolinks.pagesCached(0);
另一个解决方案是监听“page:restore”事件并调用初始化方法。 后一种解决方案更具性能。
document.addEventListener("page:restore", function() { app.init(); });
您可以在下一个turbolinks问题讨论中找到答案。 对我来说,下一个解决方案工作 – 使用下一个删除由JS初始化的元素(在我的情况下选择下拉列表):
document.addEventListener("turbolinks:before-cache", function() { $('.chosen-select').chosen('destroy'); })