IE8 - "object doesn't support this property or method" 缩小 return 语句
IE8 - "object doesn't support this property or method" on minified return statement
我有一个函数可以简单地从字符串中获取 url 的查询参数。 (我用它来调整 iframe 上的 src
属性)。
函数如下:
getQueryParameters : function (str) {
'use strict';
var params;
if (!/\?.+/.test(str)) {
return {};
}
params = (str || document.location.search).replace(/(.+\?)/, '');
params = params.split('&');
params = params.map(function (param) {
param = param.split('=');
this[param[0]] = param[1];
return this;
}.bind({}))[0];
return params;
}
在除 IE8 之外的所有浏览器中,无论是缩小版还是未缩小版,一切都正常。在 IE8 中我得到这个错误:
object doesn't support this property or method
它将我指向此处的缩小代码:
return/?.+/.test(a)?(b=(a||document.location.search).replace(/(.+?)/,""),b=b.split("&"),b=b.map(function(a){return a=a.split("="),this[a[0]]=a[1],this}.bind({}))[0]):{}}});
知道为什么吗?
许多其他带有此错误的 SO 问题,就像这个问题一样,是特定的。我似乎无法弄清楚,我将不胜感激。
谢谢
您的代码中的问题是您在数组对象上调用 map() 但它是在 ES5 中引入的,而 IE8 不支持。如果您想使用地图,请尝试 JQuery 的 map utility.
我有一个函数可以简单地从字符串中获取 url 的查询参数。 (我用它来调整 iframe 上的 src
属性)。
函数如下:
getQueryParameters : function (str) {
'use strict';
var params;
if (!/\?.+/.test(str)) {
return {};
}
params = (str || document.location.search).replace(/(.+\?)/, '');
params = params.split('&');
params = params.map(function (param) {
param = param.split('=');
this[param[0]] = param[1];
return this;
}.bind({}))[0];
return params;
}
在除 IE8 之外的所有浏览器中,无论是缩小版还是未缩小版,一切都正常。在 IE8 中我得到这个错误:
object doesn't support this property or method
它将我指向此处的缩小代码:
return/?.+/.test(a)?(b=(a||document.location.search).replace(/(.+?)/,""),b=b.split("&"),b=b.map(function(a){return a=a.split("="),this[a[0]]=a[1],this}.bind({}))[0]):{}}});
知道为什么吗?
许多其他带有此错误的 SO 问题,就像这个问题一样,是特定的。我似乎无法弄清楚,我将不胜感激。
谢谢
您的代码中的问题是您在数组对象上调用 map() 但它是在 ES5 中引入的,而 IE8 不支持。如果您想使用地图,请尝试 JQuery 的 map utility.