2014-09-29 61 views
1

我使用的是twitter和facebook社交按鈕,無需SDK或身份驗證。社交按鈕twitter facebook在用turbolinks更改頁面時消失

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

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

當我第一次加載頁面或刷新,鳴叫按鈕和分享按鈕秀。但是當我通過點擊鏈接導航時,相同的社交按鈕不顯示。

我該如何獲取腳本以加載並與turbolinks一起玩呢?

+1

有人能夠解決這個問題嗎?我面臨着完全相同的問題。 – user2635088 2014-12-09 13:47:23

回答

1

這是由於turbolinks不重裝你的JavaScript頁面刷新。這是turbolinks的預期行爲;不過,有時您需要重新加載第三方JavaScript,就像您的情況一樣。

解決方案:在鏈接導致包含您需要重新加載JavaScript的網頁

禁用turbolinks。在你的案例鏈接,導致與您的社交按鈕頁面。

例子:

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

另一種解決方案:

如果你的社交按鈕被綁定到頁面realod事件,那麼你可以強制turbolinks到每次重新加載它們。使用補充寶石jquery.turbolinks按照安裝說明,你可以強制turbolinks重新加載你想在document.ready()功能內的所有JavaScript。

例子:

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

這樣你就不必在鏈接導致包含你的社交按鈕的頁面手動禁用turbolinks。

希望這會有所幫助。

+0

但muh turbolinks大聲笑謝謝 – ahnbizcad 2015-09-01 05:48:38

+0

我可以在頁面本身以某種方式,而不是必須管理通往該頁面的所有鏈接? – ahnbizcad 2015-09-01 05:49:12

+1

讓它在同一頁面上意味着turbolinks已經解析了頁面!你必須事先告訴turbolinks完全重新加載css和js資源。如果在通往此頁面的所有鏈接上手動禁用turbolinks非常麻煩,那麼turbolink可能不適合您的應用程序,您可能會考慮將它從Gemfile中刪除,從而完全禁用turbolink。 – moeabdol 2015-09-01 09:48:15