Skip to content

Instantly share code, notes, and snippets.

@Primigenus
Created July 4, 2013 15:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Primigenus/5928718 to your computer and use it in GitHub Desktop.
Save Primigenus/5928718 to your computer and use it in GitHub Desktop.
A modified version of the Olark script that works (somewhat) with turbolinks
<!-- begin olark code -->
<script data-cfasync="false">
function initOlark(){
c = {loader: "static.olark.com/jsclient/loader0.js",name:"olark",methods:["configure","extend","declare","identify"]};
var f=window,d=document,l=f.location.protocol=="https:"?"https:":"http:",z=c.name,r="load";var nt=function(){f[z]=function(){(a.s=a.s||[]).push(arguments)};var a=f[z]._={},q=c.methods.length;while(q--){(function(n){f[z][n]=function(){f[z]("call",n,arguments)}})(c.methods[q])}a.l=c.loader;a.i=nt;a.p={0:+new Date};a.P=function(u){a.p[u]=new Date-a.p[0]};function s(){a.P(r);f[z](r)}f.addEventListener?f.addEventListener(r,s,false):f.attachEvent("on"+r,s);var ld=function(){function p(hd){hd="head";return["<",hd,"></",hd,"><",i,' onl' + 'oad="var d=',g,";d.getElementsByTagName('head')[0].",j,"(d.",h,"('script')).",k,"='",l,"//",a.l,"'",'"',"></",i,">"].join("")}var i="body",m=d[i];if(!m){return setTimeout(ld,100)}a.P(1);var j="appendChild",h="createElement",k="src",n=d[h]("div"),v=n[j](d[h](z)),b=d[h]("iframe"),g="document",e="domain",o;n.style.display="none";m.insertBefore(n,m.firstChild).id=z;b.frameBorder="0";b.id=z+"-loader";if(/MSIE[ ]+6/.test(navigator.userAgent)){b.src="javascript:false"}b.allowTransparency="true";v[j](b);try{b.contentWindow[g].open()}catch(w){c[e]=d[e];o="javascript:var d="+g+".open();d.domain='"+d.domain+"';";b[k]=o+"void(0);"}try{var t=b.contentWindow[g];t.write(p());t.close()}catch(x){b[k]=o+'d.write("'+p().replace(/"/g,String.fromCharCode(92)+'"')+'");d.close();'}a.P(2)};ld()};nt();
}
window.olark || initOlark();
olark.identify('xxx');
olark('api.visitor.updateFullName', {fullName: "${_user?.fullname}"});
olark('api.visitor.updateEmailAddress', {emailAddress: "${_user?.email}"});
olark('api.chat.updateVisitorNickname', {snippet: "${_user?.username}"});
$(document).on("page:load page:restore", function(){
initOlark();
setTimeout(function() {
olark.identify('xxx');
olark('api.visitor.updateFullName', {fullName: "${_user?.fullname}"});
olark('api.visitor.updateEmailAddress', {emailAddress: "${_user?.email}"});
olark('api.chat.updateVisitorNickname', {snippet: "${_user?.username}"});
}, 100);
});
</script>
<!-- end olark code -->
@Primigenus
Copy link
Author

fwiw, this is from a product running on Play framework, not Rails, but that shouldn't matter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment