首页 > 代码库 > Web Uploader在低版本IE下无法显示Flash的一种情况

Web Uploader在低版本IE下无法显示Flash的一种情况

用户反馈在IE 8下无法正常显示Web Uploader控件,并已安装了Flash插件。调试发现在内部抛出了Runtime Error的错误,关键代码如下:

Runtime.create = function( opts, orders ) {    var type, runtime;        orders = orders || Runtime.orders;    $.each( orders.split( /\s*,\s*/g ), function() {        if ( factories[ this ] ) {            type = this;            return false;        }    });        type = type || getFirstKey( factories );        if ( !type ) {        throw new Error(‘Runtime Error‘);    }        runtime = new factories[ type ]( opts );    return runtime;};

可以发现是对应的FlashRuntime并未找到。查看源代码发现在注册FlashRuntime时候有一个版本判断,如果没有符合最低版本要求则不注册。查看用户安装的Flash版本确实低于该要求。

FlashRuntime.register = function( name, component ) {    component = components[ name ] = Base.inherits( CompBase, $.extend({            // @todo fix this later        flashExec: function() {            var owner = this.owner,                runtime = this.getRuntime();                return runtime.flashExec.apply( owner, arguments );        }    }, component ) );        return component;};    if ( getFlashVersion() >= 11.4 ) {    Runtime.addRuntime( type, FlashRuntime );}

Web Uploader在低版本IE下无法显示Flash的一种情况