Javascript IE 7,8给出错误“;对象没有';t支持属性或方法';钥匙'&引用;
我遇到了一个javascript问题,internet explorer 7和8在控制台中给出了一个错误 我认为keys方法可能不受支持?这是导致问题的一段代码:Javascript IE 7,8给出错误“;对象没有';t支持属性或方法';钥匙'&引用;,javascript,Javascript,我遇到了一个javascript问题,internet explorer 7和8在控制台中给出了一个错误 我认为keys方法可能不受支持?这是导致问题的一段代码: if (count == Object.keys(aResults).length) { if (typeof Object.keys === 'function') { globalPriceGroupKey = Object.keys(globalPriceGroup[colorID]); } el
if (count == Object.keys(aResults).length) {
if (typeof Object.keys === 'function') {
globalPriceGroupKey = Object.keys(globalPriceGroup[colorID]);
} else {
for (var key in globalPriceGroup[colorID]) {
globalPriceGroupKey.push(key);
}
}
//globalPriceGroup[colorID].sort( function numOrdA(a, b){ return (a-b); } );
globalPriceGroupKey.sort(function(a, b) {
return globalPriceGroup[colorID][a] - globalPriceGroup[colorID][b];
});
}
我可以对这段代码做些什么,使它与ie7/8兼容吗 是的。这一点都不难。非常简单的垫片如下所示:
if (!Object.keys) {
Object.keys = function(obj) {
var keys = [],
key;
for (key in obj) {
if (obj.hasOwnProperty(key)) {
keys.push(key);
}
}
return keys;
};
}
更好的版本是,它通常提供有用的垫片。是。这一点都不难。非常简单的垫片如下所示:
if (!Object.keys) {
Object.keys = function(obj) {
var keys = [],
key;
for (key in obj) {
if (obj.hasOwnProperty(key)) {
keys.push(key);
}
}
return keys;
};
}
一个更好的版本是,它通常提供有用的垫片。Object.keys在旧版IE中不受支持,从错误消息中应该可以明显看出这一点。向上查看,在底部您将看到浏览器支持。奇怪的代码-在第一行中使用
Object.keys()
-紧接着是一条检查该函数是否存在的if
语句!你弄错序列了吗?在我清理了你的凹痕后,它变得(更)明显;-)Object.keys在旧版IE中不受支持,从错误消息中可以明显看出?向上查看,在底部您将看到浏览器支持。奇怪的代码-在第一行中使用Object.keys()
-紧接着是一个if
语句,检查该函数是否存在!你弄错序列了吗?在我清理了你的凹痕后,它变得(更)明显;-)