csv2geojson.js在IE8中导致不受支持的属性错误

时间:2014-04-21 18:52:48

标签: javascript csv internet-explorer-8 geojson mapbox

演示:http://picturethiswebcenter.com/ods_map/

当我从ie8访问此映射时,它会在此行的csv2geojson.js上抛出“对象不支持此属性或方法”错误,

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

我一直在做一些谷歌搜索,但无法确定这里缺少什么ie8,这条线可能会抛出错误的原因是什么?

1 个答案:

答案 0 :(得分:0)

csv2geojson.js使用IE8中不支持的一些“内置”函数的DSV库,即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)及更高版本中实现。见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Browser_compatibility

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