为什么IE8在使用Facebook的React.js时会出现脚本错误

时间:2013-10-08 22:12:18

标签: reactjs

我正在使用facebook的反应。不确定什么导致这个错误,接缝会自己做出反应?

我收到一个IE8脚本错误:对象不支持10898行上的这个属性或方法react.js

我没有使用缩小版本,这是评论的开发版本。有问题的其他任何人的反应不适用于IE8?想知道是否有某种设置必须用于在IE中工作?

2 个答案:

答案 0 :(得分:21)

确保添加本页末尾列出的填充物:

http://facebook.github.io/react/docs/working-with-the-browser.html#browser-support-and-polyfills

另请注意,JSXTransformer.js目前与IE8不兼容,因此您需要预编译JSX。

答案 1 :(得分:2)

我遇到了同样的问题,事实证明这是因为我正在构建捆绑包。

如果您使用的是webpack或browserify,则需要“envify”它。代码库中有些地方看起来像这样:

if (process.env.NODE_ENV !== "production") {
  doSomethingNotIE8Compatible()
}

要删除这些,react构建使用envify browserify转换来将process.env.NODE_ENV实例替换为带有本地终端环境变量值的字符串。

例如,第一行变为:

if ("production" !== "production") 

在此之后,您应该使用uglify删除死代码以保存大小。

最后,您需要通过ES3-ifer运行代码,以摆脱ES5中合法而非ES3的一些小事。例如,catch函数调用。

TLDR:在我的公司,我们使用CDN构建取得了更大的成功,而不是试图正确捆绑它。