演示:http://picturethiswebcenter.com/ods_map/
当我从ie8访问此映射时,它会在此行的csv2geojson.js上抛出“对象不支持此属性或方法”错误,
var parsed = (typeof x == 'string') ? dsv(options.delimiter).parse(x) : x;
我一直在做一些谷歌搜索,但无法确定这里缺少什么ie8,这条线可能会抛出错误的原因是什么?
答案 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库以兼容。