使用turbolinks更改页面时,社交按钮twitter facebook消失

时间:2014-09-29 04:33:33

标签: ruby-on-rails twitter facebook-like turbolinks

我使用twitter和facebook社交按钮,无需SDK或身份验证。

https://about.twitter.com/resources/buttons#tweet

https://developers.facebook.com/docs/plugins/share-button

首次加载页面或刷新时,会显示推文按钮和分享按钮。但是当我通过点击链接导航时,相同的社交按钮不会显示。

如何让脚本加载并使用turbolinks玩得很好?

1 个答案:

答案 0 :(得分:1)

这是由于 turbolinks 未在页面重新加载时重新加载您的javascript。这是turbolinks的预期行为;但是,有时你需要像你的情况一样重新加载第三方javascript。

<强>解决方案:

禁用指向需要重新加载的包含javascript的网页的链接上的turbolink。在您的情况下,链接指向带有社交按钮的页面。

示例:

<%= link_to "the page containing your social buttons", social_page_path, "data-no-turbolink": true %>

另一种解决方案:

如果您的社交按钮绑定到页面realod事件,那么您可以强制turbolinks每次重新加载它们。使用补充gem jquery.turbolinks按照安装说明操作,你可以强制turbolinks在document.ready()函数中重新加载你想要的所有javascript。

示例:

$(document).ready(function() {
    // your social buttons javascript code
});

这样您就不必手动禁用指向包含社交按钮的网页的链接上的turbolink。

希望这有帮助。