新手问题 rails 项目,production 模式在 ie8 下报"'undefined' 为空或不是对象"错误

gcywolf · 发布于 2017年5月19日 · 最后由 oplinjie 回复于 2017年5月23日 · 224 次阅读
28f6d0

第一次发帖,还望社区的前辈不吝赐教

最近做一个rails项目的浏览器适配,出现了这样的问题: development模式,一切正常 production模式,压缩并预编译了js,然后在ie8下就报js错误了,但在chrome下是正常的

去掉下面的config.assets.js_compressor = :uglifier,ie8下就没问题了

config.assets.compile = true

# Raises error for missing translations
# config.action_view.raise_on_missing_translations = true
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :sass

以下是jquery源码,控制台中显示报错的位置在下面第一行,错误是'undefined' 为空或不是对象

// Ensure firing before onload, maybe late but safe also for iframes
    document.attachEvent( "onreadystatechange", completed );

    // A fallback to window.onload, that will always work
    window.attachEvent( "onload", completed );

    // If IE and not a frame
    // continually check to see if the document is ready
    var top = false;

    try {
        top = window.frameElement == null && document.documentElement;
    } catch ( e ) {}

困扰一天了,望大神解惑

共收到 2 条回复
3035

看上去像 uglifier 压缩 js 时用了 ie8 不支持的语法,去看下 uglifier 的文档和 issue 呢,应该能找到些什么

96

同遇到这个问题,请问你解决了吗?搜索了好久未果...

决定把 uglifier 替换成 yui 了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册