2016-02-01 31 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> 
相關問題