Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails:Tawk.to聊天插件和TurboLink问题_Javascript_Ruby On Rails_Chat_Turbolinks_Tawk.to - Fatal编程技术网

Javascript Rails:Tawk.to聊天插件和TurboLink问题

Javascript Rails:Tawk.to聊天插件和TurboLink问题,javascript,ruby-on-rails,chat,turbolinks,tawk.to,Javascript,Ruby On Rails,Chat,Turbolinks,Tawk.to,您好,我想将聊天插件Tawk.to集成到我的rails应用程序中,但是添加脚本时,他们给出的脚本无法与Turbolinks一起使用,我还尝试将脚本添加到函数中并调用它。就绪并在页面上:加载但不起作用,这是原始脚本: var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date(); (function(){ var s1=document.createElement("script"),s0=document.getElementsByTagNam

您好,我想将聊天插件Tawk.to集成到我的rails应用程序中,但是添加脚本时,他们给出的脚本无法与Turbolinks一起使用,我还尝试将脚本添加到函数中并调用它。就绪并在页面上:加载但不起作用,这是原始脚本:

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的情况下使上述脚本正常工作?

有一个名为Ruby gem的程序,但是我安装并测试了它,它与Turbolinks有相同的问题,所以我开始尝试解决这个问题

实际上,修复TurboLink的Tawk脚本非常简单,只需将
$\u 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>

我想我已经添加了
窗口。$\u Tawk=undefined行到初始化脚本中,它在最初的几个页面访问中工作,但在那之后,它就不再工作了!谢谢这很有帮助。但是你能解释一下这个变量发生了什么吗?看起来
$\u Tawk
变量是在其他地方初始化的,如果你使用Turbolinks,会导致脚本失败。记住把脚本放在HTML body标记中。