React JS无法使用Internet Explorer 9

时间:2015-04-23 15:54:38

标签: javascript internet-explorer-9 reactjs

我尝试将React与Internet Explorer 9一起使用,但即使尝试运行非常准确的内容,也会遇到以下错误:

SCRIPT438:对象不支持属性或方法' isArray' react-with-addons.js,第4行第317行

SCRIPT438:对象不支持属性或方法'创建' JSXTransformer.js,第4行字符326

我已阅读https://facebook.github.io/react/docs/working-with-the-browser.html,其中说IE8可能存在这些问题,但未提及IE9。谷歌搜索也没有提出任何解决方案。

仍然,我尝试按照该页面上的建议添加es5-shim / sham。这会导致不同的错误:

SCRIPT438:对象不支持属性或方法' hasAttribute' es5-shim.min.js,第6行,第4143行

有没有人在IE9之前或其他地方遇到过这些错误?

感谢您的帮助!

我试图运行的完整代码是:



<html>
	<head>
		<script src="js/es5-shim.min.js"></script>
		<script src="js/es5-sham.min.js"></script>
		<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
		<script src="js/react-with-addons.js"></script>
		<script src="js/JSXTransformer.js"></script>

	</head>
	<body>
		<div id="container"></div>
		<script type="text/jsx">
			React.render(
				<h1>HELLO WORLD!</h1>
			);
		</script>
	</body>
</html>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:37)

常规您需要为ES5功能添加指定的多边形填充(正如您已注意到的):https://facebook.github.io/react/docs/react-dom.html#browser-support除了您提供的多边形填充之外,您可能还需要HTMl5 shiv

更具体地说,虽然问题可能不在于poly填充,但是文档模式IE9正在运行。你想确保在HTML文件中设置正确的文档模式,以便IE知道要定位的版本。否则,即使您使用的是IE9,也可能是针对IE7,这是不好的。

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

答案 1 :(得分:1)

在index.js文件中,您必须添加polyfill。这些导入应该在您的导入的第一位。

import 'react-app-polyfill/ie9';
import 'react-app-polyfill/ie11';   
//other imports

现在在ur中打开即可以使用。

在导入之前,您必须安装react-app-polyfill。

 //To install use below command:

 npm install react-app-polyfill

链接参考: https://www.npmjs.com/package/react-app-polyfill