Data URI scheme and Internet Explorer 9 Errors

DaveCS picture DaveCS · Sep 13, 2011 · Viewed 32.2k times · Source

I'm having a problem using the RFC 2397 data url scheme with IE versions 6-9. My sample code below works without problem when using current versions of Safari, FF, Opera and Chrome.

data:text/html;base64,PG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iMDt1cmw9aHR0cDovL2dvb2dsZS5jb20vIj4g

or

data:text/html,%3Cmeta%20http-equiv%3D%22refresh%22%20content%3D%220%3Burl%3Dhttp%3A//google.com/%22%3E%20

If the above code is pasted in almost any browser excluding IE it will navigate to google.com, when attempting with IE it fails with the following error.

The webpage cannot be displayed

Most likely cause:

  • Some content or files on this webpage require a program that you don't have installed.

What you can try:

Search online for a program you can use to view this web content.

Retype the address.

When inspecting the page source of the IE error page generated there is a link that makes reference to File Associations and protocols.

Protocol Type:

Description: UnKnown

Windows does not recognize this Protocol.

I realize that using the data: protocol is probably not the most straight forward or in most cases the best option, but I must use it for this particular project.

I have searched all over for a solution and tried many examples with IE hoping it was my syntax but have yet found a solution.

Answer

DaveCS picture DaveCS · Dec 10, 2011

Data URIs cannot be used for navigation, for scripting, or to populate frame or iframe elements in IE.

According to http://msdn.microsoft.com/en-us/library/cc848897%28v=vs.85%29.aspx:

Data URIs are supported only for the following elements and/or attributes.

object (images only)
img
input type=image
link
CSS declarations that accept a URL, such as background, backgroundImage, and so on.

Data URIs can be nested.

For security reasons, data URIs are restricted to downloaded resources. Data URIs cannot be used for navigation, for scripting, or to populate frame or iframe elements.

Data URIs cannot be larger than 32,768 characters.

The resource data must be properly encoded; otherwise, an error occurs and the resource is not loaded. The "#" and "%" characters must be encoded, as well as control characters, non-US ASCII characters, and multibyte characters.

For more information, see RFC2397: The "data" URL scheme.

Available as of Windows Internet Explorer 8 or later.**