React JS not working with Internet Explorer 9

user1620122 picture user1620122 · Apr 23, 2015 · Viewed 45.8k times · Source

I'm trying to use React with Internet Explorer 9 but getting the following errors even trying to run something very barebones:

SCRIPT438: Object doesn't support property or method 'isArray' react-with-addons.js, line 4 character 317

SCRIPT438: Object doesn't support property or method 'create' JSXTransformer.js, line 4 character 326

I've read https://facebook.github.io/react/docs/working-with-the-browser.html, which says IE8 might have these issues, but no mention about IE9. Googling didn't really bring up any solutions either.

Still, I tried adding es5-shim/sham as suggested on that page. That results in a different error:

SCRIPT438: Object doesn't support property or method 'hasAttribute' es5-shim.min.js, line 6 character 4143

Has anyone encountered these errors before in IE9 or otherwise?

Thanks for the help!

The full code I'm trying to run is:

Answer

monastic-panic picture monastic-panic · Apr 23, 2015

Generally, you need to include the specified polyfills for ES5 features (as you've noticed): https://facebook.github.io/react/docs/react-dom.html#browser-support

You may also need HTML5 Shiv in addition to the the polyfills you've provided.

More specifically, though, the problem is probably not with polyfills but with the document mode IE9 is running in. You want to make sure that you are setting the correct document mode in your HTML file so IE knows which version to target. Otherwise, even though you are using IE9 it may be targeting IE7 which is no good.

<meta http-equiv="X-UA-Compatible" content="IE=edge">