IE8对象不支持此属性或方法(Math.max.apply)

use*_*316 1 javascript internet-explorer

我不是一个巨大的JS作家 - 所以这可能很容易 - 但我在下面的代码行中得到了上述错误:

max_height = Math.max.apply(Math, this.headlines.map(function(e) {
        return jQuery(e).height(); }));
Run Code Online (Sandbox Code Playgroud)

它不是我的代码 - 但任何关于如何解决这个问题的指针将不胜感激!谢谢

PS.在Chrome/Safari上完美运行......

Chr*_*her 10

我的第一个(唯一)观察是,你使用的.map()是Javascript 1.6中定义的,IE8只支持Javascript 1.5(据我所知)

也许尝试使用polyfill或pollyfils库,如modernizr等.请参阅:https://github.com/kriskowal/es5-shim

要么.

编写代码使其不依赖于IE8不支持的功能.

要么.

看到你正在使用jQuery.您可以使用jquery来提供.map()功能,请参阅:http://api.jquery.com/jQuery.map/

max_height = Math.max.apply(Math, jQuery.map(this.headlines, function(e) {
    return jQuery(e).height(); }));
Run Code Online (Sandbox Code Playgroud)