Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript csv2geojson.js导致IE8中出现不支持的属性错误_Javascript_Csv_Internet Explorer 8_Geojson_Mapbox - Fatal编程技术网

Javascript csv2geojson.js导致IE8中出现不支持的属性错误

Javascript csv2geojson.js导致IE8中出现不支持的属性错误,javascript,csv,internet-explorer-8,geojson,mapbox,Javascript,Csv,Internet Explorer 8,Geojson,Mapbox,演示: 当我从ie8访问这个映射时,它在csv2geojson.js的这一行抛出一个“Object不支持这个属性或方法”错误 var parsed = (typeof x == 'string') ? dsv(options.delimiter).parse(x) : x; 我一直在用谷歌搜索,但无法找出ie8缺少了什么,这行代码可能会抛出错误的原因是什么?DSV库csv2geojson.js使用了一些ie8不支持的“内置”函数,即map函数。代码的其他部分使用forEach。我从DSV代码中

演示:

当我从ie8访问这个映射时,它在csv2geojson.js的这一行抛出一个“Object不支持这个属性或方法”错误

var parsed = (typeof x == 'string') ? dsv(options.delimiter).parse(x) : x;

我一直在用谷歌搜索,但无法找出ie8缺少了什么,这行代码可能会抛出错误的原因是什么?

DSV库csv2geojson.js使用了一些ie8不支持的“内置”函数,即
map
函数。代码的其他部分使用
forEach
。我从DSV代码中提取了以下代码片段:

function dsv(delimiter) {
  var dsv = {},
      reFormat = new RegExp("[\"" + delimiter + "\n]"),
      delimiterCode = delimiter.charCodeAt(0);

  dsv.parse = function(text, f) {
    var o;
    return dsv.parseRows(text, function(row, i) {
      if (o) return o(row, i - 1);
      var a = new Function("d", "return {" + row.map(function(name, i) {
        return JSON.stringify(name) + ": d[" + i + "]";
      }).join(",") + "}");
      o = f ? function(row, i) { return f(a(row), i); } : a;
    });
  };
  ...
.map
.forEach
数组函数仅在JavaScript 1.6(ECMAScript 5)及更高版本中实现。看


长话短说,如果你想让它在IE中工作,你的代码只能在IE9或更高版本中工作。其他选项是重写DSV库以使其兼容。

您能否确保
DSV(options.delimiter)
返回的对象具有
parse
方法?是的,目前就是这样。可能有与IE8兼容的CSV库,欢迎您查找并集成其中一个,但是支持IE8的任务已经失去了努力/回报。我能够通过添加MDN提供的多边形填充在IE8中工作