当前位置 : 主页 > 编程语言 > ruby >

ruby-on-rails – Turbolinks和3D派对插件问题?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我有网站 http://www.optimapo.ru/ 我安装了一些3d派对脚本: 在线聊天( https://www.jivochat.com/)和yandex analitics. 但由于涡轮连接,它们无法正常工作. 例如,实时聊天仅出现在主页上.但是当我们转到
我有网站
http://www.optimapo.ru/
我安装了一些3d派对脚本:
在线聊天( https://www.jivochat.com/)和yandex analitics.
但由于涡轮连接,它们无法正常工作.
例如,实时聊天仅出现在主页上.但是当我们转到使用turbolinks加载的另一个页面时,它消失了.

在关闭body标签之前,我在代码中包含脚本

<!-- BEGIN JIVOSITE CODE {literal} -->
<script type='text/javascript'>
(function(){ var widget_id = '2qq06akKwZ';var d=document;var w=window;function l(){
var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = '//code.jivosite.com/script/widget/'+widget_id; var ss = document.getElementsByTagName('script')[0]; ss.parentNode.insertBefore(s, ss);}if(d.readyState=='complete'){l();}else{if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();</script>
<!-- {/literal} END JIVOSITE CODE -->
<!-- Yandex.Metrika counter --> <script type="text/javascript"> (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter39034390 = new Ya.Metrika({ id:39034390, clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ut:"noindex" }); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks"); </script> <noscript><div><img src="http://img.558idc.com/uploadfile/allimg/210623/145A43619-0.jpg" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter -->

</body>

那么如何使脚本与turbolinks一起工作呢?

我不认为这是如何实现您所包含的代码段的实现方式.让我们看看它,我把它放在多行上以便于阅读,但这就是全部:

var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = '//code.jivosite.com/script/widget/'+widget_id;
var ss = document.getElementsByTagName('script')[0];
ss.parentNode.insertBefore(s, ss);

如果你看一下turbolinks的兼容性,它报告的问题之一就是附加到head:http://reed.github.io/turbolinks-compatibility/的自加载脚本

我不知道document.getElementsByTagName(‘script’)[0]在你的页面上的位置,但很有可能它在头脑中,因为它是页面上的第一个脚本.您可以更改为片段插入到身体的末端吗?

网友评论