gpt4 book ai didi

javascript - 如何使 AddThis 与 Rails 4 turbo-links 一起工作?

转载 作者:搜寻专家 更新时间:2023-11-01 05:12:01 25 4
gpt4 key购买 nike

我正在尝试设置 AddThis我的 Rails 站点上的插件,但目前只取得了部分成功。问题是它不能像使用 turbo-links 那样工作。 AddThis 共享按钮仅在页面刷新后出现。如果我点击网站的其他部分,AddThis 工具栏就会消失。如果我禁用 turbo 链接,那么它将在网站的每个部分都有效。

这是我生成智能图层时得到的代码:

<!-- AddThis Smart Layers BEGIN -->
<!-- Go to http://www.addthis.com/get/smart-layers to customize -->
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=xxx"></script>
<script type="text/javascript">
addthis.layers({
'theme' : 'transparent',
'share' : {
'position' : 'left',
'numPreferredServices' : 5
}
});
</script>
<!-- AddThis Smart Layers END -->

该代码当然不适用于 turbo-links。我找到了这个解决方案' how to make add this work with turbilinks rails 4 ,作者确认它有效,但当我点击网站的其他部分时仍然遇到问题。

我试图在我的 application.html.erb 文件的 head 标签内插入这段代码:

<!-- AddThis Smart Layers BEGIN -->
<!-- Go to http://www.addthis.com/get/smart-layers to customize -->
<script type="text/javascript">$(document).ready(function() {

var script="//s7.addthis.com/js/300/addthis_widget.js#pubid=xxx";

if (window.addthis){
window.addthis = null;
window._adr = null;
window._atc = null;
window._atd = null;
window._ate = null;
window._atr = null;
window._atw = null;
}
$.getScript(script, function(){
addthis.layers({
'theme' : 'transparent',
'share' : {
'position' : 'left',
'numPreferredServices' : 5
}
});
});
});
</script>
<!-- AddThis Smart Layers END -->

AddThis 在我打开网站后通常会再次加载,但一旦我切换到网站的其他部分,AddThis 就会消失。

如何使该脚本在启用 turbo 链接的情况下在我网站的每个部分都起作用?

编辑 1:

也尝试过这个但没有成功:

<script type="text/javascript">

$(document).on('page:change', 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("//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-xxx");
});
</script>

最佳答案

你试过这个吗:

#app/assets/javascripts/application.js
addthis = 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("//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-xxx");
}

$(document).ready(addthis);
$(document).on('page:load', addthis);
$(document).on('page:change', addthis);

关于javascript - 如何使 AddThis 与 Rails 4 turbo-links 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21764990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com