Modernizr完整的功能似乎太早了

时间:2012-12-07 13:27:43

标签: javascript modernizr excanvas

我有这个javascript:

Modernizr.load([
    {
        test: Modernizr.canvas,
        nope: ['/assets/js/excanvas.js'],
        both: ['/assets/js/frank/pentool.js'],
        complete : function () {
            var cmo = new CutMeOut(settings);
        }
    }
]);

如果不支持画布,则在excanvas中加载,并且在完成时应该触发“完整”功能。 pentool.js中的CutMeOut类包含与canvas元素一起使用的代码。但是,IE7和IE8给出了这个错误:

Object doesn't support property or method

如果我只是正常加载excanvas网站有效。那么,在excanvas已经彻底解决了这个问题之后,如何让var cmo = new CutMeOut(settings);运行?

感谢。

1 个答案:

答案 0 :(得分:0)

似乎工作:

Modernizr.load([
    {
        load: '/assets/js/frank/pentool.js',
        complete: function() {

            if (!document.createElement('canvas').getContext) {
                Modernizr.load('/assets/js/excanvas.js');
            } else {
                var cmo = new CutMeOut(settings);
            }


        }

    },

    {

        complete: function() {
            if (!document.createElement('canvas').getContext) {
                window.addEvent('load', function() {
                    var cmo = new CutMeOut(settings);
                });
            }
        }
    }

]);