小编典典

React JS无法与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。Googling并没有真正提出任何解决方案。

尽管如此,我还是尝试按照该页面上的建议添加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>

阅读 216

收藏
2020-07-22

共1个答案

小编典典

通常,您需要为ES5功能包括指定的polyfill(如您所注意到的):https : //facebook.github.io/react/docs/react-
dom.html#browser-support

除了您提供的polyfill外,您可能还需要HTML5 Shiv。

不过,更具体地说,问题可能不在于polyfill,而是在于运行IE9的文档模式。您要确保在HTML文件中设置了正确的文档模式,以便IE知道要定位的版本。否则,即使您使用的是IE9,它也可能以IE7为目标,这不好。

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