use*_*086 4 javascript ruby-on-rails addthis turbolinks
我试图在我的Rails网站上设置AddThis插件,但目前只取得了部分成功.问题是它不能像turbo-links一样工作.AddThis共享按钮仅在页面刷新后出现.如果我点击网站的其他部分,AddThis工具栏将消失.如果我禁用turbo-links,那么它将适用于网站的每个部分.
这是我生成智能图层时的代码:
<!-- 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 -->
Run Code Online (Sandbox Code Playgroud)
该代码当然不适用于turbo-links.我发现这个解决方案' 如何使用turbilinks rails 4添加这项工作,作者证实它有效,但当我点击网站的其他部分时我仍然有问题.
我试图head在我的application.html.erb文件中的标记内插入此代码:
<!-- 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 -->
Run Code Online (Sandbox Code Playgroud)
AddThis通常在我打开我的网站后加载,但是一旦切换到网站的其他部分,AddThis就会消失.
如何在启用了turbo-links的情况下使该脚本在我的网站的每个部分上运行?
编辑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>
Run Code Online (Sandbox Code Playgroud)
你试过这个:
#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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1472 次 |
| 最近记录: |