IE11 Support

  • Updated

ALERT: As of February 17, 2025, Osano no longer supports IE 11 in Cookie Consent.

 

Osano Cookie Consent and IE11

Due to how IE11 implements asynchronous JavaScript loading, Osano does not support the “async” attribute on embedded scripts for IE11 only. Due to this, you may see certain scripts that are not blocked on IE11 despite their classification and the end user’s consent preferences.

Are there any workarounds?

In order for IE11 to block all scripts that a user has not consented to, it is important that your script tags do not contain the “async” attribute. The “async” attribute is intended to signal the browser that you wish to load the script outside of the normal document load. This means you do not care about the order it is loaded, or if the entire page is loaded before executing the script. If you still want to maintain the functionality of the “async” attribute, please use one of the following suggestions:

  • Change the “async” attribute to “defer”. This will tell the browser to load your script after the entire document has been loaded. This means that it will not block the page load or the visual aspects of the website from loading. It should be noted that “defer” will still load and execute the script in the order it appears in the page in relation to all other scripts with the “defer” attribute, but independently from scripts without the “defer” attribute.
<scriptsrc=”this-script-loads-second.js”defer></script>

<scriptsrc=”this-script-loads-first.js”></script>

<scriptsrc=”this-script-loads-third.js”defer></script>
  • Scripts that are loaded outside of the normal HTML are loaded asynchronously by default and are handled appropriately by Osano. Instead of loading your scripts like this:
<scriptsrc=”async-script.js”async></script>

 The same script can be loaded this way without becoming problematic in IE11:

<script>    

varnewScript=document.createElement(“script”);    

varfirstScript=document.getElementByTagName(“script”)[0];    

newScript.src=“async-script.js”;    

firstScript.parentNode.insertBefore(newScript, firstScript);

</script>