嗨,我想把聊天插件Tawk.to集成到我的rails应用程序中,但是添加脚本,因为它们给它提供的脚本不适用于Turbolinks,我还尝试将脚本添加到一个函数中,并在.ready和页面上调用它:load,但是它不工作,这是原始脚本:
var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date();
(function(){
var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];
s1.async=true;
s1.src='https://embed.tawk.to/API_KEY/default';
s1.charset='UTF-8';
s1.setAttribute('crossorigin','*');
s0.parentNode.insertBefore(s1,s0);
})();我在我的application.js文件中尝试了以下内容:
function tawk_chat(){
var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date();
(function(){
var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];
s1.async=true;
s1.src='https://embed.tawk.to/API_KEY/default';
s1.charset='UTF-8';
s1.setAttribute('crossorigin','*');
s0.parentNode.insertBefore(s1,s0);
})();
}
$(document).on("ready page:load", function() {
tawk_chat();
});上述各点都不起作用。如何在启用Turbolinks的情况下完成上述脚本?
发布于 2016-01-28 19:56:30
有一个名为Tawk-rails的Ruby,但是我安装并测试了它,并且它有相同的Turbolinks版本,所以我开始尝试修复这个问题。
实际上,修复Tawk脚本使其与Turbolinks一起工作非常容易,您只需要将$_Tawk变量设置为未定义的,因此得到的脚本如下:
<script type="text/javascript”>
window.$_Tawk = undefined;
var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date();
(function(){
var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];
s1.async=true;
s1.src='https://embed.tawk.to/#{Tawk_account_id}/default';
s1.charset='UTF-8’;
s1.setAttribute('crossorigin','*’);
s0.parentNode.insertBefore(s1,s0);
})();
</script>您可以将上面的脚本直接添加到application.js中,然后在.ready上调用它,也可以安装Tawk创业板的这分叉版本,我在这里修复了这个问题。
我已经做了一个拉请求原来的宝石,所以一旦他们合并它,我将更新答案。
更新
现在,拉请求合并到原始的gem中,现在您可以安装tawk-rails创业板了,即使启用了Turbolinks,Tawk.to也可以正常工作。
https://stackoverflow.com/questions/35070821
复制相似问题