Javascript csv2geojson.js导致IE8中出现不支持的属性错误
演示: 当我从ie8访问这个映射时,它在csv2geojson.js的这一行抛出一个“Object不支持这个属性或方法”错误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代码中
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中工作