首页 > 解决方案 > 'ActiveXObject' 未定义 no-undef [React-Js]

问题描述

我正在尝试解析 XML 响应和 ReactJs。

var parser, xmlDoc;
var text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";

if (window.DOMParser) {
    // code for modern browsers
    parser = new DOMParser();
    xmlDoc = parser.parseFromString(text,"text/xml");
  } else {
    // code for old IE browsers
  xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = false;
    xmlDoc.loadXML(text);
  }

如果我删除else部分,上面的代码在 React 中可以正常工作 ,但项目要求是使用 ReactJs 支持 >=IE7 浏览器。如果我将 JS 嵌入到简单的 HTML 页面中,上面的代码也可以正常工作。如果我遗漏了什么,请告诉我。

标签: javascriptreactjsactivexobject

解决方案


所以使用window.ActiveXObject而不是仅仅ActiveXObject为了绕过全局。我假设您的 linter 设置为允许window.

或设置你的 linter 以允许它

"eslintConfig": {
  "globals": {
    "window": true,
    "ActiveXObject": true
  }
}

或者在页面上设置

/* global ActiveXObject */

推荐阅读