Skip to content

Segment snippet breaks routing on IE 11 #5

@alexanderkenney

Description

@alexanderkenney

We have implemented the Segment Snippet by importing the Segment Snippet via angular.json.

(!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t,e){var n=document.createElement("script");n.type="text/javascript";n.async=!0;n.src="https://cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(n,a);analytics._loadOptions=e};analytics.SNIPPET_VERSION="4.1.0";
  analytics.load("YOUR_WRITE_KEY");
  // analytics.page() // Uncomment if your application is NOT an SPA
  }}();)

This works great on evergreen browsers, but breaks the whole routing process on IE 11. It means that any routes specified within an angular app will not load correctly. I've just spent a few days narrowing it down to this script.

I believe it is because you are calling

Array.prototype.slice.call

The above is not supported by IE 11. Unfortunately a lot of corporate customers are still using this browser, which I appreciate is crazy. However, it would be great to get this fixed as you may well have customers that are not sending their analytics data to segment when the browser is IE 11.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions