【发布时间】:2019-09-11 22:55:00
【问题描述】:
我正在使用 vue/vuetify,我正在尝试让它在 IE11 中工作。当我运行它时,我得到了这个错误
TypeError: Object doesn't support property or method 'values'
但是当我添加一个 pollyfill
if (!Object.values) {
Object.prototype.values = function (obj) {
return Object.keys(obj).map(function (e) {
return obj[e];
});
};
}
我从 jquery 3.4.0 得到这个
Object.keys: argument is not an Object
因为它最终调用了上面的函数,但没有传递任何参数给它。从这里开始
add = function( key, valueOrFunction ) {
// If value is a function, invoke it and use its return value
var value = isFunction( valueOrFunction ) ?
valueOrFunction() :
valueOrFunction;
s[ s.length ] = encodeURIComponent( key ) + "=" +
encodeURIComponent( value == null ? "" : value );
};
它调用
valueOrFunction() // which is the Object.values()
这是一个 jsfiddle
https://jsfiddle.net/cn75e4xs/3/
在 IE11 中打开,并查看控制台选项卡。我明白了
Object.keys: argument is not an Object
因为函数在没有传递参数的情况下被调用,所以 obj 在 pollyfill 中变得未定义。
【问题讨论】:
-
请注意,虽然副本接受的答案使用与您类似的代码,但也有许多答案没有;你应该试试这些。
-
我添加了一个 jsfiddle。我使用了接受答案中的代码,但问题是 jquery 正在调用它但没有传递任何参数。
-
来自jQuery's Browser Support page(包括IE9+):“上述浏览器中jQuery的任何问题都应该报告为jQuery中的错误。”
-
浏览器是运行在IE8模式还是什么的?
标签: javascript jquery