将turbolinks中的错误报告给带有哈希的页面

时间:2014-05-12 07:56:48

标签: javascript ruby-on-rails turbolinks

我在导轨中遇到了一些恼人的问题,我希望有些人可以帮助我。

我使用jQuery-address将哈希值添加到我的网址,以便在发生特定哈希值时执行一些javascript。

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

我想制作一个js修复程序,所以如果我使用历史记录返回另一个带有哈希的页面,它应该重新加载页面以刷新内容或者只是强制使用Turbolinks手动刷新内容。

提前致谢!

1 个答案:

答案 0 :(得分:0)

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


<强>团

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

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

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