我使用共享按钮(javascript插件)。当我打开一个页面时,它会显示按钮,但是当我打开其他页面时它会消失。当我刷新网站时它再次出现。它与jquery.turbolinks和没有turbolinks宝石正常工作,但没有它网站是非常缓慢的。如何让网站更快? 我的website,现在插件正在运行,因为我删除了turbolink。
的application.js
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require lightbox
//= require_tree .
//= require turbolinks
application.html.erb javascript插件
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-588e44a9401a6d9f"></script>
<script type="text/javascript" id="st_insights_js" src="http://w.sharethis.com/button/buttons.js?publisher=630cdfb3-b6c5-4da7-a389-1c7d5340827d"></script>
<script type="text/javascript">stLight.options({publisher: "630cdfb3-b6c5-4da7-a389-1c7d5340827d", doNotHash: false, doNotCopy: false, hashAddressBar: false});</script>
的Gemfile
gem 'jquery-turbolinks'
gem 'turbolinks', '~> 5.0.1'
我尝试在javascript文件中添加一个插件,但结果相同
$(document).on('turbolinks:load', function(){
stLight.options({publisher: "630cdfb3-b6c5-4da7-a389-1c7d5340827d", doNotHash: false, doNotCopy: false, hashAddressBar: false});
});
答案 0 :(得分:0)
我认为您需要重新初始化按钮,因为buttons.js脚本不会通过turbolinks重新插入...我尝试这样的事情:
$(document).on('turbolinks:load', function(){
stLight.readyRun = false;
stLight.onReady(); // re-initialization
});
希望这有帮助!
答案 1 :(得分:0)
你有没有试过添加类似的东西?
// turbolinks addthis
var initAdthis;
initAdthis = function(){
// Remove all global properties set by addthis, otherwise it won't reinitialize
for (var i in window) {
if (/^addthis/.test(i) || /^_at/.test(i)) {
delete window[i];
}
}
window.addthis_share = null;
// Finally, load addthis
$.getScript("http://s7.addthis.com/js/300/addthis_widget.js#pubid=YOUR-PUBLISHER-ID");
}
// Trigger the function on both jquery's ready event and turbolinks page:change event
$(document).on('ready page:change', function() {
initAdthis();
});