2016-02-01 19 views
1

我需要将HotJar代码添加到我的应用程序。我就是这么做的:如何实现脚本到Rails应用程序?

的意见/服务/ _hotjar.html.erb

<script> 
    (function(h,o,t,j,a,r){ 
     h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; 
     h._hjSettings={hjid:140457,hjsv:5}; 
     a=o.getElementsByTagName('head')[0]; 
     r=o.createElement('script');r.async=1; 
     r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; 
     a.appendChild(r); 
    })(window,document,'//static.hotjar.com/c/hotjar-','.js?sv='); 
</script> 

的意见/布局/ application.html.erb

<head> 
    . 
    . 
    <%= render partial: "services/google_analytics" %> 
    <%= render partial: "services/hotjar" %> 
</head> 

这样HotJar作品只有在第一次打开的页面(我不确定,但它不能很好地工作)。您可能会看到,我已经与谷歌分析做同样的事情,但它的作品好,因为这里是一个区别,它呈现在每一页上的代码:

的意见/布局/ application.html.erb

<body> 
. 
. 
    <script> 
    ga('send', 'pageview', '<%= request.path %>'); 
    </script> 
</body> 

我敢肯定,这是不正确的方式。但如何做到这一点?

+0

是否使用turbolinks? – Vasfed

+0

@Vasfed是的,我做 – nobilik

回答

1

Turbolinks让您的应用成为ajax单页面。只有body被重新加载,所有脚本和head保持不变。哪些代码会被重新执行有例外和选项,但无论如何,您不想在每个页面导航上添加另一个带有hotjar代码的script

Hotjar还不支持这样的应用程序(they say so here),所以为了工作,您需要禁用turbolink。

+0

我可以要求更多的帮助吗?我禁用turbolinks一切开始工作,但网页看起来没有任何样式。如何解决它? – nobilik

+0

@nobilik你需要调试,如果css链接插入正确,并提供服务。这可能是因为它的一些相对路径 – Vasfed

+0

这是我的秋天,对不起。我删除了整个字符串'<%= stylesheet_link_tag'application',media:'all','data-turbolinks-track'=> true%>'而不是它的一部分。谢谢。 – nobilik

0

对于turbolinks支持,可以在hotjar代码之后添加这个片段中,Hotjar on Single Page Apps

<script> 
    document.addEventListener("turbolinks:load", function(event) { 
    hj('stateChange', '<%=request.referer%>'); 
    }); 
</script> 
相关问题